Пользователь вводит вызываемый метод и его аргументы. то есть:Переменный метод отражения args invoke
- function1 param1
- function2 param1 param2
- functionN param1 param2 .. paramN
Предполагая, что все параметры строки, я сохраняю все вход пользователя в стеке строк :
LinkedList<String> stack = new LinkedList<String>();
И затем, с помощью отражения я получаю метод:
SpreadSheet myClass = new SpreadSheet();
Class objClass = myClass.getClass();
Method meth1 = objClass.getDeclaredMethod(stack.pop());
Мне не хватает части вызова метода с переменными args, оставшимися в стеке. Любая помощь ?
Java-отражение учебник по Oracle: https://docs.oracle.com/javase/tutorial/reflect/member/methodInvocation.html –
Похоже, вам не хватает ссылки на объект, где вызывается метод. –
Вам нужно вызвать 'meth1.invoke (objectWithThatMethod, arguments)', где в случае статического метода 'objectWithThatMethod' может быть' null'. Теперь вам просто нужно создать массив 'Object [] arguments' и заполнить его остальными элементами из вашего стека. Это не должно быть так сложно, поскольку вы знаете 'size()' стека. – Pshemo