2010-06-23 52 views
7

在java中,我有一個這樣的類:斯卡拉相當於Java的公共領域的

public class MyClass extends Properties { 
    public StringProperty prop1 = new StringProperty(this, "default value for prop1"); 
    public StringProperty prop2 = new StringProperty(this, "prop2 default val"); 
}//MyClass 

父類「屬性」使用反射來尋找在自己所有的公共領域,並與價值觀充滿變數需要。

我該如何在scala中擴展Properties?使用var prop1:StringProperty ...不起作用,我假設由於如何scala轉換私人領域得到...設置...類型的方法。

回答

6

Scala將該字段標記爲私有,但生成訪問器方法來設置和獲取其值。如果你想使用反射來做到這一點,你可以這樣描述:here

+0

我看到這張貼太多了,但不幸的是,這將無法正常工作......反射發生在Properties父類中,是用java語言編寫的,我無法更改該源代碼。 – user85116 2010-06-23 14:58:46

+0

我擔心沒有太多可以做的事情,Scala不會在生成的字節碼中發佈公共字段,所以Properties類的反射方式不適用於您的Scala代碼。 – 2010-06-23 15:16:51