【发布时间】:2016-06-25 03:24:54
【问题描述】:
在一个 Scala 类中,我定义了一个受保护的字段和一个受保护的方法:
TestProtected.scala:
class TestProtected {
protected var f = 0
protected def m = 1
}
在我看来,它会将受保护的 f 和 m 转换为 java 受保护的字段和方法。但是当我使用 jd-gui 将 TestProtected.class 反编译为 java 文件时,结果出乎我的意料:
@ScalaSignature(bytes="...")
public class TestProtected
{
private int f= 0;
public int f() { return this.f; }
public void f$eq(int x$1) { this.f = x$1; }
public int m() {
return 1;
}
}
java文件中的f和m是公开的吗?
为什么?
谢谢!
【问题讨论】:
-
可能与 Scala 中的
protecteddoesn't 与 Java 中的含义相同,但我无法将这些部分放在一起。
标签: scala