package reflection.targets; import java.lang.reflect.Method; import reflection.AnnoT; import reflection.AnnoT2; import reflection.AnnoT3; @AnnoT2 public class ClassTarget002 { public int myField = 999; public static String myStaticField = "staticField"; @SuppressWarnings("unused") private boolean myPrivateField = true; @AnnoT public ClassTarget002() { } public ClassTarget002(float f) { System.out.println(f); } @AnnoT3("can'tchange") public ClassTarget002(int f) { myField = f; } public int methodStays() { return 99; } public int methodChanged() { return 2; } public int lateMethod() { return 42; } public String doubleIt(String it) { return it + it; } public String changeIt(String it) { return it + " " + it + "!"; } public int changeReturn(String it) { return it.length(); } public String changeThem(String it, int repeat) { String result = ""; for (int i = 0; i < repeat; i++) { result += it; } return result; } public String callPrivateMethod() throws Exception { Method privateOne = ClassTarget.class.getDeclaredMethod("privateMethod"); return (String) privateOne.invoke(this); } @SuppressWarnings("unused") private String privateMethod() { return "new privateMethod result"; } protected String protectedMethod() { return "new protectedMethod result"; } public String overrideMethod() { return "ClassTarget002.overrideMethod"; } String defaultMethod() { return "new defaultMethod result"; } public static String staticMethod() { return "ClassTarget002.staticMethod"; } public static int staticMethodAdded() { return 2; } public static String staticMethodAddedWithArgs(int i, String s) { return i + s + "002"; } }