Class.forName
可能返回一个数组类型吗?现在当我使用Class.forName("byte[]")
时,会抛出NoClassFound
异常。如何使Class.forName返回数组类型?
或一般来说,如何从Type.class
得到Type[].class
?
Class.forName
可能返回一个数组类型吗?现在当我使用Class.forName("byte[]")
时,会抛出NoClassFound
异常。如何使Class.forName返回数组类型?
或一般来说,如何从Type.class
得到Type[].class
?
public static void main(String[] args) {
System.out.println(byte[].class.getName());
try {
Class clazz = Class.forName("[B");
System.out.println(byte[].class==clazz);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
byte []。class的名字是“[B”; 。
字节[]类== clazz中为真
[Ljava.lang.String; for String []
[Lpacket.to.YourClass; for YourClass []
有没有办法获得原始类型的短名称,如“B”,“I”等。 – imgen 2013-03-16 15:25:41
Java中只有几种基元类型,您可以逐个检查它。 – BlackJoker 2013-03-16 15:28:39
好的,这似乎是唯一的方法 – imgen 2013-03-16 15:57:04
是的,你是对的。 – imgen 2013-03-16 15:24:27