2013-03-16 66 views
3

Class.forName可能返回一个数组类型吗?现在当我使用Class.forName("byte[]")时,会抛出NoClassFound异常。如何使Class.forName返回数组类型?

或一般来说,如何从Type.class得到Type[].class

+0

是的,你是对的。 – imgen 2013-03-16 15:24:27

回答

6
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 []

+0

有没有办法获得原始类型的短名称,如“B”,“I”等。 – imgen 2013-03-16 15:25:41

+0

Java中只有几种基元类型,您可以逐个检查它。 – BlackJoker 2013-03-16 15:28:39

+0

好的,这似乎是唯一的方法 – imgen 2013-03-16 15:57:04