Java 我的通用数组有什么问题,

Java 我的通用数组有什么问题,,java,generics,classcastexception,Java,Generics,Classcastexception,我不知道如何处理我的通用数组。我一直在犯这个错误 主线程java.lang.ClassCastException中的异常:[Ljava.lang.Object;无法转换为[Ljava.lang.Compariable 该错误与此代码位有关 T[] a = (T[]) new Object[temp]; 我的类扩展了comparable,我不知道为什么会不断出现这个错误。任何关于如何修复这个错误的提示都将不胜感激。下面是代码 public void balance() { int temp

我不知道如何处理我的通用数组。我一直在犯这个错误

主线程java.lang.ClassCastException中的异常:[Ljava.lang.Object;无法转换为[Ljava.lang.Compariable

该错误与此代码位有关

T[] a = (T[]) new Object[temp];
我的类扩展了comparable,我不知道为什么会不断出现这个错误。任何关于如何修复这个错误的提示都将不胜感激。下面是代码

public void balance()
 {
  int temp = size();
  int low = temp -(temp - 1);
  T[] a = (T[]) new Object[temp];
  reset(INORDER);
  for (int i =0;i<temp; i++)
 {
     a[i]= getNext(INORDER);

     root = null;
     insertRec( a, 0 ,temp-1);
     add((T) a [i]);
  }
}

我对代码的其余部分没有任何问题,但我认为查看整个方法会有所帮助。这是一个更大的类的一部分,该类处理二进制搜索树,该方法应该平衡树。

我相信int low=temp-temp-1行可以重写为int low=1。而且,似乎还不够此处给出的信息-哪一行给出了错误?准确地显示您是如何做到的可能很有用。大小是多少?您创建的方法是什么?您不能将对象强制转换为类似的类型。有关详细答案,请查看。此代码在运行时也会失败,并出现相同错误:Integer[]nums=Integer[]new object[10],这可能是一个没有泛型的简单示例。Chthonic项目给出的答案应该提供一种有用的方法来完成您想要做的事情。