是不是真的,你只能得到實際的類不是基本類型的類實例?
的排序。
但有時你需要有一些元數據爲「原始整數」。例如,在查看方法簽名時。然後你得到一個Class[]
的參數,你不知何故需要區分public void test(Integer x)
和public void test(int x)
。
所以爲了方便這個,對於原始類型有特殊的Class實例。
藉此更進了一步,甚至有java.lang.Void.TYPE:
Class<Void> x = void.class;
見識Javadoc:
/**
* Determines if the specified <code>Class</code> object represents a
* primitive type.
*
* <p> There are nine predefined <code>Class</code> objects to represent
* the eight primitive types and void. These are created by the Java
* Virtual Machine, and have the same names as the primitive types that
* they represent, namely <code>boolean</code>, <code>byte</code>,
* <code>char</code>, <code>short</code>, <code>int</code>,
* <code>long</code>, <code>float</code>, and <code>double</code>.
*
* <p> These objects may only be accessed via the following public static
* final variables, and are the only <code>Class</code> objects for which
* this method returns <code>true</code>.
*
* @return true if and only if this class represents a primitive type
*
* @see java.lang.Boolean#TYPE
* @see java.lang.Character#TYPE
* @see java.lang.Byte#TYPE
* @see java.lang.Short#TYPE
* @see java.lang.Integer#TYPE
* @see java.lang.Long#TYPE
* @see java.lang.Float#TYPE
* @see java.lang.Double#TYPE
* @see java.lang.Void#TYPE
* @since JDK1.1
*/
public native boolean isPrimitive();
我不跟隨「的邏輯,由於仿製藥和類型擦除...是不是真的只能得到實際類的[Class]實例而不是基元?泛型和類型擦除與類和基元之間的區別無關。 – 2012-03-30 04:04:12
你會喜歡'void.class' :-) – Thilo 2012-03-30 04:07:49