2010-06-23 57 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