首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将对象数组转换为泛型类型

问将对象数组转换为泛型类型
EN

Stack Overflow用户
提问于 2016-05-01 23:34:03
回答 2查看 4.1K关注 0票数 0

我正在创建一个由数组支持的泛型堆栈。当我尝试创建泛型类型数组时,Java不允许我这样做。有人告诉我必须创建一个Object类型的数组,并将其转换为泛型类型。我已经将对象数组强制转换为type,但是如何处理Java不断给我的未检查的Type错误呢?

代码语言:javascript
复制
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。

EN

回答 2

Stack Overflow用户

发布于 2016-05-01 23:50:09

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

代码语言:javascript
复制
public class AStack<T> {
    T arr[];
    int top=-1;

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

Stack Overflow用户

发布于 2016-05-01 23:47:50

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

代码语言:javascript
复制
GenericType[] array = { new specificType1(), new specificType2(), new specificType3() }
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36968462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档