Java: логический экземпляр Boolean?

Я немного запутался: у меня есть функция, которая принимает объект в качестве аргумента. Но компилятор не жалуется, если я просто передаю примитив, и даже распознает логический примитив как Boolean Object. Почему это так?

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"

Ответы на вопрос(4)

Ваш ответ на вопрос