当前位置: 首页 > 知识库问答 >
问题:

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

梅安平
2023-03-14

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

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类型。

共有2个答案

吴山
2023-03-14

你可以使用一个接口或者一个类,它被扩展到所有你想成为泛型的类,然后使用这个接口或者类作为数组的类型,现在你可以把你的特定类型插入到数组中。

GenericType[] array = { new specificType1(), new specificType2(), new specificType3() }
年运珧
2023-03-14

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

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

    public AStack() {
        int defSize=10;
        arr = (T[]) new Object [defSize]; 
    }
}
 类似资料:
  • 问题内容: 我正在使用返回“对象”类型的普通对象的Web服务。调试清楚地表明此对象中存在某种Array,因此我想知道如何将“ Object”转换为Array(或类似对象)? 我尝试了以下方法: 但是没有任何效果。我总是得到一个InvocationTargetException。 我究竟做错了什么? 编辑 : 可悲的是,我不得不删除指向显示Eclipse调试器输出的图像的链接,因为它不再可用。请不要

  • 此代码有效。它以“未检查或不安全操作”警告进行编译和运行。 当这两个给我运行时错误时 我遇到的错误如下:

  • 有没有一种简单的方法可以做到这一点: 编辑:我写了一份正确答案的工作副本:

  • 我在我的一个实用程序类中有一个方法,它接受一个集合和一个类对象,并返回一个Iterable实例,该实例可以遍历作为指定类实例的集合的所有成员。其签名为: 这对于大多数用例都非常有效,但现在我需要将其与泛型类

  • 问题内容: 如果你有一个具有原始类型(例如Byte,Integer,Char等)的Java对象数组。有没有一种巧妙的方法可以将其转换为原始类型的数组?特别是可以做到这一点,而不必创建新的数组并遍历内容。 因此,例如 将其转换为最简洁的方法是什么 不幸的是,在Hibernate和我们无法控制的某些第三方库之间进行接口连接时,这是我们经常要做的事情。看来这是一个很普通的操作,所以如果没有捷径,我会感到

  • 我想说得具体一点。我有一个名为Result的类和一个名为Result的派生类 这些类在方法中用作返回类型。为此,我创建了这个helper类: 正如您所看到的,上面的代码对于成功有两种返回类型,一种是如果您不想返回任何东西,另一种是如果您想返回一些东西,但是失败的结果永远不会返回什么东西。这是不必要的,只是一个错误消息。这使我想到以下问题:当我想创建一个可以使用返回类型返回Success,而不使用返