2

Mybatis が Java でプライベート変数を取得する方法を考えていました。

例えば:

Foo という Java クラスがあるとします。

public class Foo{
   private int foolID;

   public Foo(int foolID){
     this.foolID = foolID;
   }
}

そして、挿入用の XML マッパーを作成しましょう。

<insert id="insert" parameterType="Foo">
    insert into foo_table (id)
    values (#{foolID});
</insert>

この挿入用に FooDAO Java クラスと FooMapper Java インターフェースがあるとします。

私の質問は、getter がなくても foolID が読み取り可能である理由です (foolID の getter メソッドがあっても、getter が何であるかを指定することはありません...)。私には魔法のように思えますし、プログラミングに魔法はないことも知っています... :)

私が考えることができる唯一の方法は、反射です。

事前にご協力いただきありがとうございます。

4

1 に答える 1

1

その通りです。リフレクションはプライベート フィールドへのアクセスに使用されますが、プライベート フィールドへのアクセスが制限されていない場合に限ります。リフレクションのような継ぎ目は、プライベート フィールドにアクセスするためだけでなく、setter の getter などを呼び出すためにも頻繁に使用されます。

于 2013-04-05T15:43:53.533 に答える