3

重複の可能性:
Javaでリフレクションを介してプライベートフィールドにアクセスすることは可能ですか

Javaでクラスのプライベートデータメンバーを呼び出して、クラスの外部にアクセスできるようにする方法はありますか? トリッキーな質問銀行にこれが欲しいです。私のJavaの経験と同じくらい、これは可能だと思いますが、その方法がわかりません。

4

7 に答える 7

6

Java 言語仕様、第 3 版によると:

6.6.8 Example: private Fields, Methods, and Constructors

A private class member or constructor is accessible only within the body of the top level class (§7.6) that encloses the declaration of the member or constructor. It is not inherited by subclasses.

Java で使用reflectionしてプライベート フィールドにアクセスできます。理想的には、パブリックセッターとゲッターメソッドを使用して、クラスの外部からそのようなデータにアクセスする必要があります(他の人が投稿したように)

于 2012-12-26T07:11:44.443 に答える
1

アクセス修飾子の詳細については、以下のリンクを確認してください

http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

リフレクションを介してJavaのプライベート変数にアクセスするためのこれ

リフレクションを介したJavaのプライベート変数へのアクセス

于 2012-12-26T07:23:44.850 に答える
0

プライベートフィールドの値を返す/設定するパブリックメソッドを使用してこれを行うことができます。

public Class A{

   private String myData;

   public String getMyData(){
        return myData;
   }

   public void setMyData(String data){
        this.myData=data;
   }
}
于 2012-12-26T08:31:04.683 に答える
0
  1. クラス外で使用できないプライベートメンバーはありません
  2. この目的のために getter メソッドと setter メソッドを使用できます
于 2012-12-26T07:17:49.270 に答える
-1

getクラスのプライベート フィールドを取得するパブリック メソッドを定義します。

于 2012-12-26T07:16:11.020 に答える
-1

いいえ、決して Java のプライベート変数にアクセスすることはできません。

プライベート メンバー変数の値にアクセスまたは変更するためのパブリック getter メソッドと setter メソッドを提供できます。

于 2012-12-26T07:16:44.093 に答える