私は少し混乱しています。引数としてオブジェクトを受け取る関数があります。しかし、プリミティブを渡すだけで、ブールプリミティブをブールオブジェクトとして認識しても、コンパイラは文句を言いません。どうしてこんなことに?
public String test(Object value)
{
if (! (value instanceof Boolean) ) return "invalid";
if (((Boolean) value).booleanValue() == true ) return "yes";
if (((Boolean) value).booleanValue() == false ) return "no";
return "dunno";
}
String result = test(true); // will result in "yes"