栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

实际上,如何使接口实例方法仅接受相同类的参数?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

实际上,如何使接口实例方法仅接受相同类的参数?

你是正确的:这个成语并 不能 阻止比较不同类的类。它所做的只是确保比较对象也实现相同的接口。如果只需要比较相同的类型,则可以由实现类强制实施。

您所说的“ 漏洞 ”就是我所谓的“ 故意做您不想做的事情 ”。

__如果需要* 这种行为,可以将 Foo 对象与 A 对象进行比较。 *

这是一个功能,而不是漏洞。

如果您希望 Foo 与其他 Foos 具有可比性,则应定义 Foo 来实现

IComparable<Foo>

如果您 希望 FooA 相当,那么您 不应 定义 Foo
来实现

IComaparable<A>
。除非有人试图故意编写破损的代码,否则为什么有人会这样做呢?

@caskey已提供您问题的实际答案:

不,您不能使用Java中的接口来完成您想做的事情。[您必须使用类来完成。

您错过了一件事:

因此(除非我误解了一些东西),与不那么戏剧性的相比,原始成语并没有买更多的东西:

public interface IComparable<T>

原来的成语 买你的东西。它强制比较对象 必须 实现 IComparable
。不太生动的示例将允许您无限制地将实现类与任何对象进行比较。所以…编译器将允许您将

Long
,或
InputStream
,或
linkedHashSet<Byte[]>
或任何其他内容指定为类型参数。

当您以这种方式看待它时,很容易看出为什么这种习语如此普遍。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/507550.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号