Eph*_*ere 4 java eclipse scala
我怀疑我必须缺少一些非常基本的东西,但我似乎无法从Java代码访问Scala字段:
package test;
class TestScala (myNumber : Int){
val myNum : Int = myNumber;
}
package test;
import test.TestScala;
public class TestJava {
public static void main(String[] args) {
TestScala t = new TestScala(2);
int x = t.myNum;
System.out.println(x);
}
}
Run Code Online (Sandbox Code Playgroud)
产量:
线程"main"中的异常java.lang.Error:未解决的编译问题:字段TestScala.myNum不可见
这张Assembla票接触到了这个主题但我的小颅骨无法解析一个有用的解决方案:
谢谢
Val字段通过具有相同名称的方法访问.
scalac -Xprint:typer会告诉你:
class TestScala extends java.lang.Object with ScalaObject {
<paramaccessor> private[this] val myNumber: Int = _;
def this(myNumber: Int): $iw.$iw.TestScala = {
TestScala.super.this();
()
};
private[this] val myNum: Int = TestScala.this.myNumber;
<stable> <accessor> def myNum: Int = TestScala.this.myNum
}
Run Code Online (Sandbox Code Playgroud)
所以在Java中int x = t.myNum();工作.
| 归档时间: |
|
| 查看次数: |
826 次 |
| 最近记录: |