Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

privateメソッドへのアクセス

テスト用のドライバを作成中です。
そこで質問なのですが。
ドライバクラスdrclsから、テスト対象クラスtestclsの継承元クラスsuperclsのprivate変数にアクセスする方法がわかりません。
また同様にsuperclsのprotectメソッドにアクセスする方法がわかりません。
リフレクション?を使えばいけるかもというところまでしかわかりませんでした。

ご教授いただけると幸せです。
よろしくお願いいたします

2

回答

3351

閲覧

2件の回答

評価

0

private変数には、同一クラスからしかアクセスできません(継承元クラスsupercls)。継承元クラスsuperclsに、private変数を参照する、publicなメソッドを作成し、そのメソッド経由でprivate変数を参照する形になります。

評価

0

>リフレクション?を使えばいけるかもというところまでしかわかりませんでした。
それで合っている。
ただし、それについての調査・試行内容を質問に含めることが大切だ。

>2016-08-20 10:40:49
それはシステムにおいて対象のクラスを「使う」場合の話で、今回は対象のクラスを「テストする」話だ。
たとえば、setterを呼び出した後にprivateフィールドの値を見れば、setterの実装が正しいという確認になるんだよ。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。