Я хотел бы лучше понять поведение isAssignableFrom в Java между примитивными и ссылочными типами.
Например:
System.out.println(boolean.class.isAssignableFrom(Boolean.class)); // false
System.out.println(Boolean.class.isAssignableFrom(boolean.class)); // false
boolean primitive;
Boolean referenceType = true;
primitive = referenceType;
System.out.println(primitive); // true
Я знаю, что при назначении примитивов ↔ ссылается на то, что бокс/распаковка происходит по мере необходимости, но я бы подумал, что поэтому isAssignableFrom вернет true в первых двух примерах выше.
Может ли кто-нибудь объяснить, почему он возвращает false, и что такое соответствующий тест?