java: boolean instanceOf Boolean?

Ich bin ein bisschen verwirrt: Ich habe eine Funktion, die ein Objekt als Argument nimmt. Aber der Compiler beschwert sich nicht, wenn ich nur ein Primitiv übergebe und sogar ein Boolesches Primitiv als Boolesches Objekt erkenne. Warum ist das so

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"

Antworten auf die Frage(8)

Ihre Antwort auf die Frage