我有这个单片Java应用程序,我想移植到更新的技术,我想在任何有意义的地方应用Scala。
现在我将一个相当庞大的java-singleton类实现转换为Scala对象。
在我曾经做过的另一个课程中(JAVA):
public class MyOtherClass
{
protected MyClass myClass;
public MyOtherClass()
{
myClass = MyClass.getInstance();
}
}
现在我想做以下事情:
public class MyOtherClass
{
protected MySCALAClass myClass;
public MyOtherClass()
{
myClass = MySCALAClass$.MODULE$;
}
}
但这不起作用。它说:
需要MyScalaClass,找到MyScalaClass $
我还尝试创建一个小函数
def getInstance() = this
但当然这会产生同样的问题。
有什么想法吗?我已经搜索过这个主题了,如果你只是想调用对象的方法,我会看到它不是一个问题,但我需要重写很多很多调用“myClass”的对象来测试它。
编辑:我完全清楚我可以将对“myClass”的每次调用重命名为“MySCALAClass”,但这不是真正的修复,只是一种解决方法,对于一个大项目来说这很乏味
答案 0 :(得分:4)
我认为@neuronaut的评论是正确的。
请参阅以下问题:
单例类(在您的情况下为MySCALAClass$
)不是原始类(MySCALAClass
)的子类,因此单例对象(MySCALAClass$.MODULE$
)也不是它的实例