#java #generics
#java #дженерики
Вопрос:
в Java мы можем применять дженерики к классу и методам, как показано ниже
class Sample<T>{}
public <T,E> void test(T x, E y){}
это помогает нам писать универсальные алгоритмы, помогает нам повторно использовать один и тот же код для нескольких входных данных, аналогичным образом мы можем применять дженерики к примитивным переменным?? если возможно, мы можем повторно использовать одну и ту же переменную снова и снова для разных входных данных, я знаю
class Sample<T>{public T temp;}
возможно.
но вопрос в том
class Sample{public <T> T temp;}
возможно ли это
Комментарии:
1. В вашем последнем примере вы могли бы создавать разные экземпляры этого класса с разными
temp
типами. Это привело бы к повреждению системы типов, поэтому не имеет смысла разрешать этот синтаксис.Object
В этом случае вы должны использовать.2. И ответ: нет .
3. Ваш первый пример, по крайней мере, сбивает с толку: обе переменные вызываются двумя разными типами
T
. Если вы хотите, чтобы они были независимыми, для ясности кода переименуйте один из них. Если вы хотите, чтобы они были одинаковыми, измените объявление метода на readpublic <E> void test(T x, E y){}
. И поскольку E отображается только как тип второго параметра, нет никакой пользы от простого написанияpublic void test(T x, Object y){}
.4. спасибо вам, ребята, за понимание, это было полезно
Ответ №1:
Нет, это не так, невозможно было бы определить, какой тип temp, поэтому это не помогло бы компилятору что-либо ограничить (в этом суть дженериков) или инструментов для внесения каких-либо предложений.
В этом случае вы не можете добиться большего, чем сделать temp объектом. (или используйте ваш второй пример)