将Object数组转换为泛型类型

时间:2016-05-01 15:34:03

标签: java arrays generics

我正在创建一个由数组支持的泛型类型的堆栈。当我尝试创建泛型类型数组时,Java不允许我。我被告知我必须创建一个Object类型的数组并将其转换为泛型类型。我已经将我的Object数组转换为类型,但是我如何处理Java一直给我的Unchecked Type错误?

=COUNTIFS($B$2:$B$4,"<="&G1,$C$2:$C$4,">"&G1)-COUNTIFS($D$2:$D$4,"<="&G1,$E$2:$E$4,">"&G1)

这是我到目前为止的地方。

更新: 我正在创建一个Object数组,然后将返回类型转换为方法末尾的类型T.

2 个答案:

答案 0 :(得分:3)

最简单的方法是使用type变量将对象数组转换为所需类型。

public class AStack<T> {
    T arr[];
    int top=-1;

    public AStack() {
        int defSize=10;
        arr = (T[]) new Object [defSize]; 
    }
}

答案 1 :(得分:-1)

您可以使用扩展到您想要通用的所有其他类的接口或类,然后使用接口或类作为数组的类型,现在您可以将特定类型插入到数组中。

GenericType[] array = { new specificType1(), new specificType2(), new specificType3() }