java无法识别泛型t,关于java:什么是泛型方法,在这种情况下如何绑定< T >?

本文讨论了Java中泛型方法的使用,特别是对于静态方法中的泛型类型。虽然未在类中定义,但编译器会在编译时根据上下文推断T的类型。在运行时,泛型信息会被擦除,强制类型转换仅在编译时进行检查。通过示例展示了泛型方法可能导致的类型安全问题,并推荐阅读Java Generics Tutorial以获取更多信息。
摘要由CSDN通过智能技术生成

本问题已经有最佳答案,请猛点这里访问。

前言:我理解泛型以及它们是如何在类级别声明的(例如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我问的是泛型方法,而不是泛型类。 我已经更新了问题以反

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值