为什么可以';我不能将Scala对象分配给Java变量吗?
我有一个单片Java应用程序,我想移植到更新的技术,我想在任何有意义的地方应用Scala 现在,我将一个相当大的java单例类实现转换为Scala对象 在另一个类中,我曾经这样做(JAVA): 现在我想做以下几点:为什么可以';我不能将Scala对象分配给Java变量吗?,java,scala,object,Java,Scala,Object,我有一个单片Java应用程序,我想移植到更新的技术,我想在任何有意义的地方应用Scala 现在,我将一个相当大的java单例类实现转换为Scala对象 在另一个类中,我曾经这样做(JAVA): 现在我想做以下几点: public class MyOtherClass { protected MySCALAClass myClass; public MyOtherClass() { myClass = MySC
public class MyOtherClass
{
protected MySCALAClass myClass;
public MyOtherClass()
{
myClass = MySCALAClass$.MODULE$;
}
}
但这不起作用。它说:
必需的MyScalClass,找到的MyScalClass$
我还尝试创建一个小函数
def getInstance() = this
当然,这也会产生同样的问题
有什么想法吗?我搜索了这个主题,我发现如果您只想调用对象的方法,这不是一个问题,但是我需要重写很多很多对“myClass”对象的调用,甚至需要测试它
编辑:我完全知道我可以将每次对“myClass”的调用都重命名为“MyCalClass”,但这并不是真正的修复方法,只是一种变通方法,对于一个大项目来说,这很乏味。我认为@neuronaut的评论是正确的 见以下问题:
singleton类(
myscalass$
在您的例子中)不是原始类(myscalass
)的子类,因此singleton对象(myscalass$.MODULE$
)也不是它的实例。您可能需要将myClass
变量声明为受保护的myscalass$myClass代码>
def getInstance() = this