3
私は再帰なしでmergesortを実装することになっています。私はすべてのジャズを終えましたが、クラスは宿題の範囲外の理由で編集していません。この態様は教科書を形成する直接取られジェネリックTから比較可能なコンパイル防止へのチェックされていないキャスト
...
public <T extends Comparable<? super T>> void Mergesort(T[] a){
T[] tmpArray =(T[]) new Comparable[a.length];
1警告が見つかりました:
ファイル:ここに問題がある/Users/OcastaEshu/Java/NonRecursiveMergesort.java [ライン:22]
警告:/Users/OcastaEshu/Java/NonRecursiveMergesort.java:22: 警告:[unchecked]無検査キャスト
が見つかりました:java.lang.Comparableと[]が必要:classOfelementが
a.getClass()
あるpublic static <T extends Comparable<? super T>> void Mergesort(T[] a, Class<T[]> clazz) { T[] tmpArray = clazz.cast(Array.newInstance(a.getClass().getComponentType(), a.length)); }
:あなたが警告を回避したい場合はTが[]
これは単なる警告です。そのコードはまだコンパイルする必要があります。 – jjnguy
これはコンパイルする必要があります。 @SuppressWarnings( "unchecked")アノテーションも使用できます。 –