Я новичок в использовании Java Generics, и мне интересно, как я должен избавиться от предупреждений о непроверенных методах. Я понимаю, что такой код определяет тип родового объекта и не дает мне предупреждения:Как я могу избежать непроверенных предупреждений метода в Java, когда я не знаю тип общего объекта?
DTRowData<String> someData = new DTRowData<String>("Some string");
Но я не буду знать тип моего родового объекта, поэтому я пишу код, как это вместо :
DTRowData moreData = new DTRowData(80100);
Этот код имеет больше смысла для меня, как это кажется, хороший повод, чтобы использовать дженерики, если вы не знаете, какой тип данных, которые вы собираетесь получить обратно. Но это дает мне предупреждение: «Непроверенный вызов DTRowData как члена необработанного типа DTRowData»
Каков правильный способ прекратить получение этого предупреждения, когда я не буду знать, какие типы данных я получу назад? Иногда это будет число, иногда строка. Я предпочел бы не использовать
@SuppressWarnings("unchecked")
Вот мой код класса, если это помогает на всех:
public class DTRowData<E> {
public E someValue;
public DTRowDate(E someValue){
this.someValue = someValue;
}
}
[? Что такое сырье типа и почему мы не должны использовать его] (http://stackoverflow.com/questions/2770321/what -is-a-raw-type-and-why-shouldnt-we-use-it) –
Обычно мы используем '>' подстановочный знак, если мы не знаем определенного типа. Вы также можете позволить компилятору вывести тип с помощью оператора алмаза '<>'. Но в случае 'нового DTRowData (80100)' почему бы просто не использовать ''? –
Pshemo
Что вы подразумеваете под «понятиями»? Вы будете переданы 'Object' только? – fge