2015-05-15 118 views
1

我有這個單片Java應用程序,我想移植到更新的技術,我想在任何有意義的地方應用Scala。爲什麼我不能將Scala對象分配給Java變量?

現在我翻譯了一個相當巨大的java單例類實現到一個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」重命名,但沒有真正的解決,只是一種變通方法,它是一個大項目乏味。

+2

您可能需要將myClass變量聲明爲protected MySCALAClass $ myClass; – neuronaut

回答

相關問題