Class c = Integer.class;
System.out.println(c);
它打印
class java.lang.Integer
這是有道理的,因爲java.lang.Integer
是一類。所以我們可以有一個對應的Class
對象。
但是當我做
Class c1 = int.class;
System.out.println(c1);
其打印int
我覺得是種曖昧的.class
回報類型的對象Class
和int
不是一個類(但基本類型)。
當基本類型(primitiveType.class.getName()
)不存在時允許.class操作背後的動機是什麼?
此外,如果你看到toString(
)Class類的方法
public String toString() {
return (isInterface() ? "interface " : (isPrimitive() ? "" : "class "))
+ getName();
}
由於原始類型不是類或接口簡單地打印名稱(int
爲int
)。那麼爲什麼允許創建一個不存在的類的對象呢?
我覺得這是Java反模式之一。 –