Java – получение защищенного метода из суперкласса с отражениемJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java – получение защищенного метода из суперкласса с отражением

Сообщение Anonymous »

В настоящее время я пытаюсь использовать Reflection для вызова защищенного метода M класса C для объекта класса InheritsC, который наследуется от C (но не переопределяет M). У меня есть следующий код, основанный на этом ответе: https://stackoverflow.com/a/160976/23480292

Код: Выделить всё

package mypackage2;
import mypackage.C;
import java.lang.reflect.*;

public class InheritsC{
public static void main(String[] args){

try{
//creates instance
Object obj = new InheritsC();
Class className = Class.forName("mypackage2.InheritsC");
//sets params array
Class[] params = new Class[1];
params[0] = Class.forName(java.lang.String);
//gets method
Method m = className.getSuperClass().getDeclaredMethod("M, params");
//sets args array
Object[] arglist = new Object[1];
arglist[0] = new String("Java is Fun!");
//makes method accessible and executes
m.setAccessible(true);
m.invoke(obj, arglist);

} catch (Exception e){System.out.println(e.toString());}
}
}
Метод M записывает параметр String в файл, используя объект FileWriter. Следует отметить, что C находится в другом пакете, чем InheritsC.
Я пробовал несколько вариантов этого кода, но во всех случаях файл не записывается. Никаких исключений не создается, но, похоже, ничего не происходит. Я не знаю, почему это происходит, и буду признателен за любой совет.

Подробнее здесь: https://stackoverflow.com/questions/792 ... reflection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»