Точно так же вы можете видеть, что это возможно для isPrimitive вернуть истинный (поскольку у вас есть достаточное количество ответов, показывающих, почему это ложь):
public class Main
{
public static void main(final String[] argv)
{
final Class clazz;
clazz = int.class;
System.out.println(clazz.isPrimitive());
}
}
Это имеет значение в отражении, когда метод принимает в «междунар ", а не" Integer ".
Этот код работает:
import java.lang.reflect.Method;
public class Main
{
public static void main(final String[] argv)
throws Exception
{
final Method method;
method = Main.class.getDeclaredMethod("foo", int.class);
}
public static void foo(final int x)
{
}
}
Этот код не удается (не может найти метод):
import java.lang.reflect.Method;
public class Main
{
public static void main(final String[] argv)
throws Exception
{
final Method method;
method = Main.class.getDeclaredMethod("foo", Integer.class);
}
public static void foo(final int x)
{
}
}
isPrimitive() Короче говоря: 'междунар .class.isPrimitive() 'дает' true'; 'Integer.class.isPrimitive()' дает 'false'. – Patrick