当前位置: 首页 > 面试题库 >

在Java中,如何动态确定数组的类型?

叶炜
2023-03-14
问题内容
Object o = new Long[0]
System.out.println( o.getClass().isArray() )
System.out.println( o.getClass().getName() )
Class ofArray = ???

运行前三行会发出;

true
[Ljava.lang.Long;

如何得到 ???要长吗?我可以解析该字符串,然后执行Class.forname(),但这很糟糕。简单的方法是什么?


问题答案:

写就好了

Class ofArray = o.getClass().getComponentType();

从JavaDoc:

public Class<?> getComponentType()

返回Class表示数组的组件类型的信息。如果此类不表示数组类,则此方法返回null



 类似资料:
  • 问题内容: 我有一个保存某种类型的变量,我需要获取一个保存相应数组类的变量。我能想到的最好的办法是: 有没有一种方法可以在不创建新实例的情况下进行操作? 问题答案: 从Java 12开始,在java.lang.Class上提供了方法。接着就,随即:

  • 问题内容: 我想获取一个传递的列表,该列表我知道是同构的,并从中创建一个与其中的元素类型相同的数组。 就像是… 问题答案: 转换将在运行时发生,而类型在编译时丢失。因此,您应该执行以下操作: 但是请注意,上面的第三行可能会引发异常-它不是类型安全的。

  • 我正在通过反射动态实例化一个对象,方法是将字段名称与地图中类似的命名键进行匹配。其中一个字段是字符数组(char[]): 在plinko迭代器中,我为目标类上的类型编写了代码,例如。 例如,其中将是 如果field dClass类型是char[],要测试的表达式是什么?

  • 我正在按子字符串组计算表中所有的商店缩写。我有另一个名为city的专栏,显示了商店缩写的位置。现在,我还想选择/显示子字符串组最常出现的城市,如果可能,还想显示该城市的shopabb计数。结果应该是这样的: 谢谢!

  • 问题内容: 我想问一个关于Java的问题。我有一个用户定义的对象类,学生,它有2个数据成员,名称和ID。在另一个类中,我必须声明那个object [](例如)。但是,我不知道对象数组的大小。是否可以声明对象数组但不知道大小?谢谢。 问题答案: 用户。添加新元素时,它将自动扩展。以后,您可以根据需要将其转换为数组。 作为另一个选择(不确定您到底想要什么),您可以声明字段,而不必立即对其进行初始化。

  • 问题内容: 我想动态创建一个二维数组。 我知道列数。但是行数正在动态更改。我尝试了数组列表,但它仅将值存储在单个维度中。我能做什么? 问题答案: 由于列的数量是恒定的,你可以有一个的。 由于它以a 为后缀,因此行数可以动态增加和减少。每行都有一个,它是静态的,但是您说列数是固定的,因此这不是问题。