[英]Array of Generics Can not Cast to Object to Comparable Java
我想創建一個 class,它接受 Java 中的 generics,但我還想強制執行 Generic 來實現Comparable
接口。 這是代碼
public class MyClass<Item extends Comparable> {
private Item[] items;
private Item[] copies;
public MyClass(Item[] items) {
this.items = items;
copies= (Item[])new Object[items.length];
for (int i = 0; i < items.length; ++i) {
copies[i] = items[i];
}
}
public static void main(String[] args) {
Integer[] items = {23, 36, 45, 66, 25, 38, 47};
MyClass<Integer> myClass= new MyClass<Integer>(items);
}
}
當我嘗試運行代碼時,出現以下錯誤:
java.lang.ClassCastException: class [Ljava.lang.Object; cannot be cast to
class [Ljava.lang.Comparable; ([Ljava.lang.Object; and [Ljava.lang.Comparable;
我應該如何重構此代碼以使其正常工作,同時強制它只接受 Comparable Generics 並將copies
的實例化留在MyClass
的構造函數中?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.