Я пытаюсь реализовать DoublyLinkedList с обобщенными характеристиками.
Согласно Java Docs , аргумент метода remove () должен быть Object.
Если я попытаюсь привести данные Object o к T, я получу предупреждение: Unchecked Cast: 'Java.lang.Object' to 'T'.
public boolean remove(Object o) {
T data = (T) o; // warning here
...
}
Чтобы избежать этого, я должен подавить предупреждение с помощью "@SuppressWarning (" Unchecked ")"
@SuppressWarnings("unchecked")
public boolean remove(Object o) {
T data = (T) o;
...
}
Насколько я понимаю, каждый T - это объект, но не каждый объект - это T. Именно поэтому он показывает предупреждение.
Но что, если, когда я использую свой класс DoublyLinkedList, я на 100% уверен, что аргумент Object является T, есть ли способ избежать предупреждения, или @suppresswarning - единственный выбор здесь?
Если мое предположение неверно, каков правильный способ приведения Объекта к T?
Спасибо.