想像してみてください。クラスのプライベート方法を簡単に呼び出すことができれば、カプセル化が失効したことを意味しますか?最近、私はJavaの反射メカニズムを見ていましたが、実際にJavaの反射メカニズムを使用して他のクラスのプライベート方法を呼び出すことができることがわかりました。これができることに関しては、それは人々の意見次第です。 。
私が書いた簡単な例コードは次のとおりです。
java.lang.reflect.invocationTargetException; Import Java.lang.Reflect.Method;/** * @Author Thomaslwq * @version Creation Time:2012年9月9:53:49 *クラス説明 */パブリッククラスリフレクションテスト{Public void void setobjetcolor(Objectobjedcolor(Objectobjhchch abjhchphch abjhch foscolor) IllegalargumentException、Illegalacces *** Ception、InvocationTargetException {class cls = obj.getClass(); //クラスのプライベートメソッドを取得する方法= cls.getdeclaredmethod( "privatemethod"、null); method.setAccessible(true); //設定せずにエラーが報告されます// this method.invoke(obj、null)を呼び出します。 } public static void main(string args [])Strows seculityException、IllegalargumentException、nosuchmethodexception、legalacces *** ception、rikocationTargetException {setObjectColor(new mytest()); }} // test class mytest {public void setMyTest(){system.out.println( "setMyTest"); } / **クラスのプライベートメソッド** / private void privatemethod(){system.out.println( "private method"); }}Java反射メカニズムを使用してクラスを呼び出す上記のプライベート方法(推奨)は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。