[英]Casting Object array to generic type
我正在创建由数组支持的通用类型的堆栈。 当我尝试创建通用类型数组时,Java不允许我这样做。 有人告诉我必须创建一个Object类型的数组并将其转换为通用类型。 我已经将Object数组强制转换为type,但是如何处理Java一直给我的Unchecked Type错误呢?
public class AStack<T>{
// Create a stack with the default capacity 10. The stack expands
// its internal array when the number of elements pushed() into it
// would exceed the internal capacity.
Object arr[];
int top=-1;
public AStack(){
int defSize=10;
arr = (T[])new Object [defSize];
}
这是我到目前为止的位置。
更新:我正在创建一个对象数组,然后在方法的末尾将返回类型强制转换为类型T。
最简单的方法是使用类型变量将对象数组转换为所需的类型。
public class AStack<T> {
T arr[];
int top=-1;
public AStack() {
int defSize=10;
arr = (T[]) new Object [defSize];
}
}
您可以使用扩展到所有其他要使其通用的其他类的接口或类,然后将该接口或该类用作数组的类型,现在可以将特定类型插入数组。
GenericType[] array = { new specificType1(), new specificType2(), new specificType3() }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.