Предупреждения об дженериках JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Предупреждения об дженериках Java

Сообщение Anonymous »

Я изучал дженерики в Java и, изучив различные источники, попытался создать универсальный класс, который принимает число или его подкласс во время создания экземпляра. Этот класс включает метод, который принимает созданный пользователем список того же типа и умножает каждое значение на 2, сохраняя исходный тип, а затем возвращает измененный список. Однако у меня возникли проблемы с кодом.

Код: Выделить всё

import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;

class GenericMultiplier {

public List multiplyByTwo(List list) {
List resultList = new ArrayList();
for (T item : list) {
// Perform multiplication based on the type of Number
if (item instanceof Integer)
resultList.add((T) Integer.valueOf(item.intValue() * 2));
else if (item instanceof Double)
resultList.add((T) Double.valueOf(item.doubleValue() * 2));
}
return resultList;
}
}

public class Main {
public static void main(String[] args) {
List intList = Arrays.asList(1, 4, 6, 87, 34);

GenericMultiplier multiplier = new GenericMultiplier();
List doubledList = multiplier.multiplyByTwo(intList);

System.out.println("Original List: " + intList);
System.out.println("Doubled List: " + doubledList);
}
}

Хотя код компилируется правильно, я получаю такие предупреждения, как

Код: Выделить всё

Type safety: Unchecked cast from Double to T
или

Код: Выделить всё

Type safety: Unchecked cast from Integer to T
Пожалуйста, помогите смягчить эти предупреждения.

Подробнее здесь: https://stackoverflow.com/questions/786 ... s-warnings
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»