The above is the Right Kind of False, as shown here:
user=> (if (.isVarArgs (first (.getMethods String))) :true :false)
:false
However 'bean' returns the Wrong Kind of False:
user=> (if (:varArgs (bean (first (.getMethods String)))) :true :false)
:true
For those unfamiliar with this lovely feature of Java, it has to do
with ignoring the documented recommendation to use Boolean/valueOf and
instead using the constructor:
user=> (if (Boolean/valueOf "false") :true :false) ; correct
:false
user=> (Boolean. "false") ; don't do this, even though it looks ok
false
user=> (if (Boolean. "false") :true :false) ; see I told you
:true
So the only bug here is that 'bean' is somehow creating the Wrong Kind
of False.
--Chouser