Java 如何找出数组的类型?

Java 如何找出数组的类型?,java,Java,假设我有一个方法publicstaticvoidamethodt[]items。如何确定项的类型是String、Int还是Double?我使用了我不确定的实例 public static void aMethod(T[] items) { for(int i = 0; i < items.length; i++) { if(items[i] instanceof String) { } } } 通常,类有一些方法可能会有所帮助,例如: Ob

假设我有一个方法publicstaticvoidamethodt[]items。如何确定项的类型是String、Int还是Double?我使用了我不确定的实例

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

       }
  }
}

通常,类有一些方法可能会有所帮助,例如:

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

结果:java.math.BigDecimal

试试这个,如果你想得到类名的话

items.getClass().getComponentType()
如果你想让不同的类型做不同的事情,使用

instanceof

Java使用。因此,在运行时,本例中的数组将是一个对象数组,尽管数组中的对象可能仍然都是在编译时指定的T类型

您需要这样做的事实是代码气味的迹象。你的用例是什么?