Java有没有C#那样可以对某个类进行扩展,添加新的方法

例如帮String类型扩展一个ToInt()方法

阅读 8.3k
6 个回答

String类比较特殊...其他的可以通过继承然后添加方法

没有. Java的类是死的, 一但写好就不再有更改能力. 你应该不是问, 通过继承来添加新的方法. 如果有的话, Scala也不用费劲搞个隐式视图来为已有类添加方法.

好吧, 这也不是铁的证据.

你说的是接口吗?

没有。Scala和PHP有trait

Java甚至都没有给类起别名的能力。

装饰者模式。

可以通过 Manifold 来在 Java 中实现扩展方法(原理和 Lombok 是一样的),而且我已经在项目中进行了实践。具体可以看看我的文章:Java 缺失的特性:扩展方法

推荐问题