2015-05-20 84 views
0

我有一个方法(代表一组对象),它接收一个Class对象作为参数,并且我需要找到集合中的所有对象这个Class对象作为它们的元对象。从它的元对象中创建一个对象变量

问题是,我需要返回他们作为他们的类型的数组,我不知道如何获取对象类型。

因此,换句话说,我需要建立一个数组,他的类型取决于类对象上,例如:

public Object[] getAllFromType(Class meta){ 
    Object[] temp = new meta.getDynamicType[fullCells]; 

    ... 
    ... 
    ... 
    return temp; 
} 

这可能吗?

谢谢。

+0

我不知道我明白'meta'是什么,你会怎么称呼它。你能发布一些更多的信息吗?您可能可以在这里使用泛型,具体取决于您正在尝试做什么。 – Thomas

+0

您是否还可以澄清“集合中具有此Class对象作为其元对象的所有对象”?你是指某个集合中给定类的所有实例,例如'fullCells'内的所有'String'实例? – Thomas

回答

1

那么,你已经证明你打算把它作为返回反正Object[],这样你就不会得到一个编译时好处在这里,但你可以轻松地创建正确类型的数组足够:

Object[] array = (Object[]) Array.newInstance(meta, fullCells); 

注意,投给Object[]是必需的,因为Array.newInstance回报Object - 中投将用于int[]例如失败,因为int[]不是Object[]。但是,如果数组元素类型是任何类或接口类型,它将会工作。

相关问题