繁体   English   中英

将对象数组转换为通用类型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM