我刚刚开始深入研究Java泛型,并遇到了令人费解的事情。我有一个Class对象列表。这些Class对象是扩展MyType类的类。我想做的是以下几点:
Class<? extends MyType>[] myArray = myList.toArray( Class<? extends MyType>[] );
现在我知道这不会奏效。但是如何创建这样的阵列呢?我的麻烦是我需要将此List作为Class数组传递给方法。我宁愿避免@SuppressWarnings并弄清楚它是否可能。
答案 0 :(得分:1)
您可以按原样传递列表,但不能实例化。必须使用具体的类replacea实例化,然后将其分配给捕获的任何内容。
答案 1 :(得分:0)
由于myList的类型,你必须在这里提供你应该知道的具体类型。
答案 2 :(得分:0)
有规则&#34;不要使用泛型&#34;混乱阵列。 Java中有限制声明creation of arrays of parameterized types is not allowed。因此,您的问题的答案是不,您无法创建任何泛型类型的数组。
UPD :考虑使用任何集合类型而不是数组。他们会工作得很好。 或者你可以(但最好不要这样做)使用非泛型元素数组,然后将它们转换为适当的类型,抑制警告。