Java の型について考察する過程で、私が理解できない奇妙な点に出くわしました。
int
その修飾子を検査するとpublic
、 、abstract
、およびが返されますfinal
。と は理解public
していますが、プリミティブ型final
に on が存在することはわかりません。abstract
これはなぜですか?
編集:私は反省して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