在对 Java 类型进行一些反思的过程中,我遇到了一个我不理解的奇怪现象。
检查int
其修饰符返回public
,abstract
和final
. 我理解public
and final
,但是abstract
on 原始类型的存在对我来说并不明显。为什么会这样?
编辑:我不是在反思,Integer
而是在int
:
import java.lang.reflect.Modifier;
public class IntegerReflection {
public static void main(final String[] args) {
System.out.println(String.format("int.class == Integer.class -> %b", int.class == Integer.class));
System.out.println(String.format("int.class modifiers: %s", Modifier.toString(int.class.getModifiers())));
System.out.println(String.format("Integer.class modifiers: %s", Modifier.toString(Integer.class.getModifiers())));
}
}
运行时的输出:
int.class == Integer.class -> false
int.class modifiers: public abstract final
Integer.class modifiers: public final