私はスカラーにとって少し新しく、私の会社のためにいくつかのものをテストしようとしています。 私の問題は以下の通りです:Javaで保護されているとマークされたフィールドを持つScalaクラス
class Test {
var id: Int = 0
}
てjavap -private -cテストを行う:あなたが見ることができるように
Compiled from "Test.scala"
public class com.example.Test extends java.lang.Object implements scala.ScalaObject{
private int id;
public int id();
Code:
0: aload_0
1: getfield #11; //Field id:I
4: ireturn
public void id_$eq(int);
Code:
0: aload_0
1: iload_1
2: putfield #11; //Field id:I
5: return
public com.example.Test();
Code:
0: aload_0
1: invokespecial #19; //Method java/lang/Object."<init>":()V
4: aload_0
5: iconst_0
6: putfield #11; //Field id:I
9: return
}
、ID変数自体がプライベートとしてマークされている ScalaのクラスTestあります。 Scalaに保護されているとマークするにはどうすればよいですか?本当にラウンドはありません。
テストコードから 'id()'と 'id_ $ eq()'メソッドを呼び出せますか?さもなければ、私は唯一の選択肢はJavaで 'Test'クラスを定義することだと思います。つまり、Scalaで定義された 'val'と' var'はアクセサメソッドでしか利用できませんが、Javaで定義されたフィールドは読み書きできます。 –