java文本框设置为隐式_java – 参数化方法如何在某些情况下隐式绑定而不是其他情况?...

我最近在重构代码时遇到了这个问题:

下面的方法“getList()”具有参数化的返回类型.在此之下,我已经设置了三种尝试隐式绑定< T>的方法.到.

我无法弄清楚为什么前两个编译和运行正确,而第三个(bindViaMethodInvocation)甚至不会编译.

有线索吗?

在StackOverflow上寻找类似的问题时,我遇到了这个问题:

Inferred wildcard generics in return type.那里的答案(信用证Laurence Gonsalves)有几个有用的参考链接来解释应该发生的事情:

“这里的问题(正如你的建议)是编译器正在执行Capture Conversion.我相信这是JLS §15.12.2.6 of the JLS的结果.”

package stackoverflow;

import java.util.*;

public class ParameterizedReturn

{

// Parameterized method

public static List getList()

{

return new ArrayList();

}

public static List bindViaReturnStatement()

{

return getList();

}

public static List bindViaVariableAssignment()

{

List intList = getList();

return intList;

}

public static List bindViaMethodInvocation()

{

// Compile error here

return echo(getList());

}

public static List echo(List intList)

{

return intList;

}

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值