可以在Java中对变量应用泛型吗?

huangapple go评论71阅读模式
英文:

can i apply generics on a variable in 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;}
英文:

in java we can apply generics on a class and methods as shown below

class Sample&lt;T&gt;{}
public &lt;T,E&gt; void test(T x, E y){}

this helps us write generic algorithms , help us reuse the same code for multiple inputs ,similarly can we apply generics on primitive variables?? if it is possible we can reuse the same variable again and again for different inputs , i know

class Sample&lt;T&gt;{public T temp;}

is possible.

but the question is

class Sample{public &lt;T&gt; T temp;}

is this possible

答案1

得分: 2

不,不是这样的,无法确定temp是什么类型,因此无法帮助编译器限制任何内容(这就是泛型的目的),也无法为工具提供任何建议。

在这种情况下,最好的方法是将temp设为Object类型。(或者使用您的第二个示例)。

英文:

No it's not, it wouldn't be possible to tell what type temp is, so it wouldn't help the compiler restrict anything (that is the point of generics), or tools to make any suggestions.

You can't get better in this case than making temp an Object. (or use your second example)

huangapple
  • 本文由 发表于 2020年10月6日 17:31:11
  • 转载请务必保留本文链接:https://go.coder-hub.com/64223050.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定