могу ли я применить дженерики к переменной в java?

#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 . Если вы хотите, чтобы они были независимыми, для ясности кода переименуйте один из них. Если вы хотите, чтобы они были одинаковыми, измените объявление метода на read public <E> void test(T x, E y){} . И поскольку E отображается только как тип второго параметра, нет никакой пользы от простого написания public void test(T x, Object y){} .

4. спасибо вам, ребята, за понимание, это было полезно

Ответ №1:

Нет, это не так, невозможно было бы определить, какой тип temp, поэтому это не помогло бы компилятору что-либо ограничить (в этом суть дженериков) или инструментов для внесения каких-либо предложений.

В этом случае вы не можете добиться большего, чем сделать temp объектом. (или используйте ваш второй пример)