チェックされていないキャストの警告が表示されます。警告を解決する方法がわかりません。
コンパイラ エラーlist = (E[]) new IntKeyed [size];
は、文字ごとに使用すると想定されるコードを選択しているようです。
ジェネリックを使用しようとしているため、「E」です。
したがって、このコードのどこかでおかしくなったに違いないと思います。エラーを調べたところ、 に対処しているように見えましたが、私の知る限りArrayLists
では を使用していません。ArrayList
多分私はすべきArrayLists
ですか?それを変更すると、警告が修正されますか? また、コードの例外処理が不完全であるという問題もあります。しかし、それはアレイの問題から切り離されていると思います。
あなたが見つけることができるエラーは、私を正しい方向に向けるのに役立ちます. ありがとう。
public abstract class MyArrayList<E> implements IntKeyed
{
private final int DEFCAP = 50;
private int origCap;
private int numElements;
private E[] list;
public MyArrayList()
{
origCap = DEFCAP;
list = (E[]) new IntKeyed [origCap]; *******Error Here
}
public MyArrayList( int size ) throws Exception
{
size = DEFCAP;
if( size > 0 )
{
list = (E[]) new IntKeyed [size]; *******Error Here
origCap = size;
}
else
{
throw new ArrayStoreException();
System.out.println("List size is invalid");
}
list = (E[]) new IntKeyed [size]; *******Error Here
}
private void enlarge ()
{
E[] larger = (E[]) new IntKeyed [list.length + origCap]; *******Error Here
for( int i = 0; i < list.length; i++)
{
larger[i] = list[i];
}
list = larger;
}
でコンパイルすると、次のjavac -Xlint:unchecked MyArrayList.java
ようになります。
MyArrayList.java:29: warning: [unchecked] unchecked cast
list = (E[]) new IntKeyed [origCap];
^
required: E[]
found: IntKeyed[]
where E is a type-variable:
E extends Object declared in class MyArrayList
MyArrayList.java:37: warning: [unchecked] unchecked cast
list = (E[]) new IntKeyed [size];
^
required: E[]
found: IntKeyed[]
where E is a type-variable:
E extends Object declared in class MyArrayList
MyArrayList.java:45: warning: [unchecked] unchecked cast
list = (E[]) new IntKeyed [size];
^
required: E[]
found: IntKeyed[]
where E is a type-variable:
E extends Object declared in class MyArrayList
MyArrayList.java:117: warning: [unchecked] unchecked cast
E[] larger = (E[]) new IntKeyed [list.length + origCap];
^
required: E[]
found: IntKeyed[]
where E is a type-variable:
E extends Object declared in class MyArrayList
MyArrayList.java:43: error: unreachable statement
System.out.println("List size is invalid");
^
1 error
4 warnings