存储Class <! - ? - > []的返回类型

时间:2011-11-10 13:21:35

标签: java generics

如果变量调用返回Class<?>[],如何存储变量调用的结果?这是我假设的工作中的泛型,但我无法弄清楚如何存储它。

例如当我做

myObject的。 - &GT;在这里我得到了eclipse中的方法列表,当我转到我想要的方法returns Class<?>[]

2 个答案:

答案 0 :(得分:0)

如果您希望代码保持通用,可以将其存储在

Class<?>[] 

变量。

如果您知道类型并且不需要保持通用,则可以定义更受限制的类型变量,并将该方法的结果转换为该类型。

答案 1 :(得分:0)

我认为这些问题表明了对泛型的误解。 当方法返回时

Class<?>[]

那是因为你做了它所以它可以返回任何类型的数组。

当您实际使用该方法时,它不会评估真正的类是什么,它只返回方法签名中声明的内容。然后,您可以检查结果中的每个对象,并获取实际的类。泛型只是一种使弱类型通用类(即集合)更加强类型化的方法,它不是一种处理机制。它永远不会找出?对你来说是什么。

如果您事先知道?可能是什么,请更改您的方法签名以表明它。您甚至可以将其声明为

Class<? extends BaseClass>[]

表示您只期望BaseClass的子类。