Я использую отражение, чтобы получить возвращаемый тип метода, который является String.
Когда я вызываю функцию, мне нужно привести возвращаемое значение к String.
Как я могу это сделать без явного использования String и вместо этого использовать returnType, полученный посредством отражения?
И почему эта строка не работает. Разве это не то же самое, что String.class.cast()
Class.forName("String").cast(method2.invoke(personObject, "Susan", 40));
Main.java
//GET METHOD BY NAME & PARAMETER TYPES
Class[] parameterTypes = new Class[] {String.class, int.class};
Method method2 = personClass.getDeclaredMethod("sayHelloTo", parameterTypes);
Class returnType = method2.getReturnType();
String hello1 = (String) method2.invoke(personObject, "Susan", 40);
String hello2 = (java.lang.Strin) method2.invoke(personObject, "Susan", 40);
String hello2 = String.class.cast(method2.invoke(personObject, "Susan", 40));
String hello2 = Class.forName("String").cast(method2.invoke(personObject, "Susan", 40));
Person.java
public class Person {
public String sayHelloTo(String name, int age) {
return "Hello " + name + ", you are " + age + " years old";
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... reflection
Горячо использовать класс returnType, полученный посредством отражения? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение