替代Java中的c#用户定义转换

时间:2012-04-21 11:14:50

标签: c# java

Java中是否有类似User-Defined conversions的内容或者有关如何在不添加数十个.toXXXX方法的情况下在java中实现相同效果的任何建议

我还没有使用过c#一段时间,因此我无法记住正确的名称,但我也记得在c#中我能够将第一个参数传递给函数而不使用符号

Foo(MyClass instance)

而是

instance.Foo()

如果我没记错的话,我必须在MyClass之前使用此关键字,例如Foo(this MyClass instance),但正如我所说,我暂时没有使用过c#,所以我无法记住

谁能告诉我这两种方法的替代方案"方法"在Java中

1 个答案:

答案 0 :(得分:5)

不,在Java中没有像用户定义的转换那样。我个人不喜欢在C#中使用隐式用户定义的转换,甚至很少写出明确的转换。如果缺少它们会导致您添加数十toXXX方法,那么您应该重新考虑在C#中使用转换的广泛程度。

您正在讨论的第二个功能是extension methods,它在Java中也不存在。你只需要正常调用静态方法。