<T扩展Comparable <的问题?超级T >>

沃尔什

我有一个HeapInterface和一个基于数组的实现的Heap类。我正在尝试制作Integers类的堆,但是出现以下错误:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Comparable;
at HeapArray.<init>(HeapArray.java:16)
at HeapArray.<init>(HeapArray.java:10)
at Test.main(Test.java:5)

我将提供每个类的声明,构造函数和产生错误的测试方法,以希望有人可以解释我的错误...

public interface HeapInterface<T extends Comparable<? super T>> {...}

public class HeapArray<T extends Comparable<? super T>> implements HeapInterface<T> {
   private T[] heap;
   private static final int DEFAULT_CAPACITY = 10;
   private int numberOfEntries;

   public HeapArray() {
      this(DEFAULT_CAPACITY);
   }//end default constructor

   public HeapArray(int capacity) {
      numberOfEntries = 0;
      @SuppressWarnings("unchecked")
      T[] tempHeap = (T[]) new Object[capacity];
      heap = tempHeap;
   }//end alternative constructor

   ...
}

public class Test {

   public static void main(String[] args) {
      HeapInterface<Integer> h = new HeapArray<Integer>();

      for(int i = 0; i < 16; i++)
         h.add(i);

      System.out.println(h);
   }
}

有任何想法吗?

下沉点

在断言T是可比较的时,您不能将Object []强制转换为T [],因为Object是不可比较的。尝试创建一个Comparable[]并将其转换为T[]

  T[] tempHeap = (T[]) new Comparable[capacity];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java 中的泛型 - 为什么我不能做 Comparable<? 扩展 T> 而不是 Comparable<? 超级T>?

来自分类Dev

为什么T扩展可比性<?超级T>包括T?含义包括Comparable <T>?

来自分类Dev

java.util.Comparator.naturalOrder采用<T扩展Comparable <?超级T >>并返回Comparator <T>-为什么?

来自分类Dev

如何扩展Node <T扩展Comparable <T >>类

来自分类Dev

通用<T的说明扩展Comparable <?在collection.sort /类似代码中的超级T >>?

来自分类Dev

Java错误将参数传递给采用T的方法,其中T扩展了Comparable <T>

来自分类Dev

行类HanoiStack <T扩展Comparable <T >>扩展Stack <T>中的Java泛型编译错误

来自分类Dev

JAVA为什么分配这些变量时出现类型错误(T扩展Comparable <T>)

来自分类Dev

Comparable <T>和compareTo

来自分类Dev

为什么泛型约束T扩展Comparable <T>不足以避免强制转换?

来自分类Dev

在实现java Comparable <T>类时出现问题

来自分类Dev

在Collection上使用iterable <?超级T>

来自分类Dev

在Collection上使用iterable <?超级T>

来自分类Dev

为什么不能多次实现Comparable <T>?

来自分类Dev

无法理解 Comparable<T> 转换

来自分类Dev

类型不匹配:无法从Comparator <capture#2-of?超级T>到Comparator <?超级T>

来自分类Dev

<T extended Comparable>实现Comparable <Transition <T >>的C#等效项是什么?

来自分类Dev

Collections.sort()声明:为什么<?超级T>而不是<T>

来自分类Dev

Scala:class [T]扩展T?

来自分类Dev

的T用途扩展ü?

来自分类Dev

Partial<T>,但扩展了方法

来自分类Dev

我可以使用<T实施器Comparable>还是仅使用<Comparable>

来自分类Dev

调用接受`<?来自scala代码的超级T>`类型参数?

来自分类Dev

Java泛型<?超级T>:不适用的方法

来自分类Dev

如何指定方法AnyObject <?超级T,字符串>

来自分类Dev

JAXB 2.1为生成的类实现Comparable <T>

来自分类Dev

“ Comparable <T>”应该是“功能接口”吗?

来自分类Dev

将Comparable <T>与泛型类一起使用

来自分类Dev

Java Generics Clarification( Constraining T to a type, while using Comparable)

Related 相关文章

  1. 1

    Java 中的泛型 - 为什么我不能做 Comparable<? 扩展 T> 而不是 Comparable<? 超级T>?

  2. 2

    为什么T扩展可比性<?超级T>包括T?含义包括Comparable <T>?

  3. 3

    java.util.Comparator.naturalOrder采用<T扩展Comparable <?超级T >>并返回Comparator <T>-为什么?

  4. 4

    如何扩展Node <T扩展Comparable <T >>类

  5. 5

    通用<T的说明扩展Comparable <?在collection.sort /类似代码中的超级T >>?

  6. 6

    Java错误将参数传递给采用T的方法,其中T扩展了Comparable <T>

  7. 7

    行类HanoiStack <T扩展Comparable <T >>扩展Stack <T>中的Java泛型编译错误

  8. 8

    JAVA为什么分配这些变量时出现类型错误(T扩展Comparable <T>)

  9. 9

    Comparable <T>和compareTo

  10. 10

    为什么泛型约束T扩展Comparable <T>不足以避免强制转换?

  11. 11

    在实现java Comparable <T>类时出现问题

  12. 12

    在Collection上使用iterable <?超级T>

  13. 13

    在Collection上使用iterable <?超级T>

  14. 14

    为什么不能多次实现Comparable <T>?

  15. 15

    无法理解 Comparable<T> 转换

  16. 16

    类型不匹配:无法从Comparator <capture#2-of?超级T>到Comparator <?超级T>

  17. 17

    <T extended Comparable>实现Comparable <Transition <T >>的C#等效项是什么?

  18. 18

    Collections.sort()声明:为什么<?超级T>而不是<T>

  19. 19

    Scala:class [T]扩展T?

  20. 20

    的T用途扩展ü?

  21. 21

    Partial<T>,但扩展了方法

  22. 22

    我可以使用<T实施器Comparable>还是仅使用<Comparable>

  23. 23

    调用接受`<?来自scala代码的超级T>`类型参数?

  24. 24

    Java泛型<?超级T>:不适用的方法

  25. 25

    如何指定方法AnyObject <?超级T,字符串>

  26. 26

    JAXB 2.1为生成的类实现Comparable <T>

  27. 27

    “ Comparable <T>”应该是“功能接口”吗?

  28. 28

    将Comparable <T>与泛型类一起使用

  29. 29

    Java Generics Clarification( Constraining T to a type, while using Comparable)

热门标签

归档