2015-04-03 65 views
0

假设我有一个方法public static void aMethod(T[] items)。如何确定项目是否为String或Int或Double类型?我用instanceof这是我不确定的。如何找出数组的类型?

public static void aMethod(T[] items) 
{ 
    for(int i = 0; i < items.length; i++) 
    { 
    if(items[i] instanceof String) 
     { 

     } 
    } 
} 
+4

您需要这样做的事实是符号代码味道。你的用例是什么? – 2015-04-03 18:02:54

回答

0

一般类类有可能帮助的方法,例如:

Object ob = new BigDecimal("30"); 
System.out.println(ob.getClass().getCanonicalName()); 

结果:java.math.BigDecimal的

0

试试这个,如果你想要的是获取类的名字...

items.getClass().getComponentType() 

如果你想让不同的类型做不同的事情,请使用

instanceof 
0

Java使用type erasure实现泛型。因此,在运行时,这种情况下的数组将是一个Object数组,尽管数组中的对象仍将全部(可能)为T类型 - 在编译时指定