流形:Java的扩展方法

这是有关Manifold的系列文章的第二篇, Manifold是Java的一种新型工具。 第1部分介绍Type Manifold API ,它是常规代码生成的强大替代方案。 本部分探讨了扩展类 ,它是一种创新功能,使您可以使用自己的方法,接口和其他功能来补充类,而无需子类化而无需更改原始类。

快! 编写一些代码以将File的内容读取为String 。 预备,开始!

作为务实的开发人员,您希望这样的事情:

String contents = file.readText();

遗憾的是,您键入file. 在您的IDE中并Swift发现不存在这种方法。 接下来,您在StackOverflow中搜索样板解决方案,并找到有用的代码段。 您希望避免自己和其他人重复此工作,因此将样例代码片段包装在Util库中:

public class MyFileUtil {public static String readText(File file) {// boilerplate code...}
}

现在您可以编写:

String contents = MyFileUtil.readText(file);

这是一样好吗?

您应该拥有一个更友好,更实用的File API — readText()更适合作为直接File上的实例方法,并且更易于发现。 这是语言社区中通常称为“ Extension Methods所有差异。 这也是Manifold在Java遗留下来的地方接手的地方。

集成块通过扩展类完全实现了Java的扩展方法:

package extensions.java.io.File;import manifold.ext.api.*;@Extension
public class MyFileExtension {


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部