【发布时间】:2017-04-20 23:45:12
【问题描述】:
我见过很多类似的问题,但我认为没有一个是完全同构的,也没有一个能完全回答我的问题。
假设有两个接口,Tree 和Named。进一步假设给了我一个签名为
public <T extends Tree & Named> T getNamedTree();
如何将返回值保存到变量中,同时仍保留它同时实现Tree 和Named 的信息?我找不到像
public <T extends Tree & Named> T mNamedTree;
并尝试将其转换为扩展 Tree 和 Named 的接口会导致类转换异常。
【问题讨论】:
-
您需要知道该方法在实现中实际返回什么,从签名我可以告诉您它使用未经检查的强制转换。