Я встречаюсь с предупреждениями о непроверенных бросках. Я не уверен, как разрешить предупреждения.Предупреждение: [непроверенный] снятый флажок. Generics
Ошибка компилятора, на которую следует обратить внимание list = (E[]) new IntKeyed [size];
Какой код мы предположительно используем для письма.
Мы пытаемся использовать Generics, следовательно, «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