У меня проблема с поиском метода с помощью Java, например, я должен напечатать значение в System.out с помощью отражения:
public static void print(Object value) {
Method method = PrintStream.class.getMethod("print", value.getClass());
method.invoke(System.out, value);
}
Он отлично работает со строками, но когда я передаюНапример, MyClass
, например, я получаю следующую ошибку:
java.lang.NoSuchMethodException: java.io.PrintStream.print(MyClass)
at java.lang.Class.getMethod(Class.java:1786)
at Test.print(Test.java:20)
at Test.main(Test.java:15)
Я полагаю, это потому, что Java не может найти метод с точной сигнатурой, но здесь java.io.PrintStream.print(java.lang.Object)
хорошо подходит. Как я могу найти метод, который подходит для следующих классов, а не просто имеет одну и ту же сигнатуру? Подход также должен работать для нескольких аргументов.