本问题已经有最佳答案,请猛点这里访问。
前言:我理解泛型以及它们是如何在类级别声明的(例如class MyClass< T >)但我从未在静态方法的级别上声明它,并且没有任何显式绑定(例如class MySubclassextends MyClass)。
我在我正在处理的应用程序中找到了这段代码片段(我没有写这部分)。 我从未见过以这种方式声明的方法。 < T >未在班级中的任何其他位置定义。 Intent.getExtras().get()返回Object,实际上可能是String,Boolean ......等。
private static < T > T getItemExtra(final Intent intent, final String extraName) {
T item = null;
if(intent != null && intent.getExtras() != null) {
item = (T) intent.getExtras().get(extraName);
}
return item;
}
样品用法:
String s1 = getItemExtra(someIntent,"some_string_extra");
Uri u1 = getItemExtra(someIntent,"some_uri_extra");
JVM如何知道< T >使用什么类型? (是的,此方法编译并成功执行)。
不是远程问题的另一个问题。
@Nilish我问的是泛型方法,而不是泛型类。 我已经更新了问题以反