2012-03-11 1 views
2

私はそのセッターメソッドを介してフィールドを設定するには、Javaリフレクションを使用して

private long _quantity; 

というフィールド名を持っている私のクラスを想定し、私はそれのためのゲッターとセッター(例えばgetQtysetQty)を作成しました。

field.set(...)を使用して強制的にJavaリフレクションを実行する方法はありますか?

タグ@Accessを読み込んだだけです。誰でも@Accessの使用経験がありますか?メソッドへのフィールドアクセスを強制するために使用できますか?

+0

フィールド名はメソッド名に対応する必要があり、その逆もあります。 –

+0

なぜ人々はフィールド名にアンダースコア(または同様のもの)を使用することを主張しているのですか? – Robert

+0

@Robert C#デザインガイドラインにも記載されています。アンダースコアがプライベート変数に触れないように、人々の地獄を恐れているように見えます。 – GETah

答えて

5

いいえ、セッターを呼びたい場合は、フィールドを直接設定せずにそのメソッドを呼び出す必要があります。

フィールド自体にハンドルがある場合、setはあなたのメソッドを通過しません。

2

いいえ、すべての点で、本質的に安全ベルトが取り外されています。

0

いいえ、あなたは反射でそれを行うことはできません。私が知っているJava VMの唯一の技術は、AspectJです。これは、intercept field accessという側面を登録することができます。しかし、それは反射では機能しません。

関連する問題