Home arrow Blog arrow Private Methoden aufrufen    Search  

 

Private Methoden aufrufen Print

javaWie kann man in Java Private Methoden aufrufen? Unter bestimmten bedinungen geht das mittels Reflexion. Ob es Sinnvoll ist, ist eine ganz andere Frage?
Natürlich im Normalfall nicht.

Es kann Sinnvoll sein wenn ich eine Private Methode testen möchte. Dazu gibt es auch eine Erweiterung für JUnit die JUnit Addons http://sourceforge.net/projects/junit-addons .

 

Hier der Java Code um auf eine Private Methode zuzugreifen:

public class TestPrivateCase {
      .....   

       public void testFoo() throws Exception {
                  Test test = new Test();
 
                  Method m = test.getClass().getDeclaredMethod("foo", null);
                  m.setAccessible(true);
                  m.invoke(test, null);
         }

   ....
}
....
public class Test {
         private void foo() {
                  System.out.println("Hallo ich bin doch privat...");
         }
}

 

Mittel der JUnit Addons sieht das ganze dann so aus:

public class TestPrivateCase {
    public void testFoo() {
        try {
            PrivateAccessor.invoke(new Test(), "foo", null, null);
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }   
}

public class Test {
    private  void foo(){
        System.out.println("Hallo ich bin doch Privat :-(");
    }

}

Also zieht euch die JUnit Addons rein wenn ihr Private testen wollt. Nur die Frage ob man das will :-) 

 

 


Pro-Pix Menu
Home
Blog
Tutorials
Links