Ton*_*Nam 3 java generics casting
我有一个类,我需要构造函数来初始化变量数组.我在互联网上研究并堆栈溢出但现在我仍然坚持如何调用该方法.例如,我怎么能在我的例子中调用method1?
public class SomeClass<T>{
public T[] array;
//Constructor
public SomeClass()
{
Method1(T, 5); //? error
Method1(5); //? error
Method1(new T().GetType(), 5); //? error
// HOW CAN I CALL THAT METHOD?
array = (T[])(new Object[5]); // this gives an error too
}
private void Method1(Class<T> type, int size)
{
array = (T[])Array.newInstance(type, size);
}
}
Run Code Online (Sandbox Code Playgroud)
试试这个:
class SomeClass<T> {
private T[] array;
@SuppressWarnings("unchecked")
public SomeClass(Class<T> klass, int size) {
array = (T[]) Array.newInstance(klass, size);
}
}
Run Code Online (Sandbox Code Playgroud)
并实例化它:
SomeClass<Integer> example = new SomeClass<Integer>(Integer.class, 10);
Run Code Online (Sandbox Code Playgroud)
请注意,实例化的数组是一个对象数组,其所有元素都将 null在您明确指定它们之前.
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |