Java等同于C#扩展方法

我希望在对象列表中实现功能,就像在C#中使用扩展方法一样。


像这样:


List<DataObject> list;

// ... List initialization.

list.getData(id);

如何在Java中做到这一点?


萧十郎
浏览 716回答 3
3回答

慕田峪9158850

Java不支持扩展方法。相反,您可以创建常规的静态方法,也可以编写自己的类。

qq_遁去的一_1

扩展方法不仅是静态方法,而且不只是便利语法,实际上,它们是功能非常强大的工具。最主要的是能够基于不同的泛型参数实例化来覆盖不同的方法。这类似于Haskell的类型类,实际上,看起来它们在C#中支持C#的Monad(即LINQ)。即使删除LINQ语法,我仍然不知道有什么方法可以在Java中实现类似的接口。而且由于Java泛型参数的类型擦除语义,我认为不可能在Java中实现它们。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java