使用Java,我有一个方法,我用method.invoke 调用它返回一个字符串。Method.invoke 返回一个不能转换为字符串的对象。我应该如何将对象用作字符串?
在反射文档中,它显示以下内容:
Object o = m.invoke(t, new Locale(args[1], args[2], args[3]));
out.format("%s() returned %b%n", mname, (Boolean) o);
但是我的代码这样做了,我得到了一个异常:java.lang.Class cannot be cast to java.lang.String
这是一个抽象类 - 然后会有几个 bean 的实现。
Method[] methods = this.getClass().getMethods();
for (Method method : methods) {
if (isMethodGetter(method)) {
try {
Object message = method.invoke(this); // expect a string
Object message = method.invoke(this); // expect a string
if (message == null) {
// no messeage
} else {
logger.debug("Calling listAnswers: got an answer: "
+ message);
// create an answer object from the reflected
Answer answer = new Answer();
answer.setText((String)message);//cast as string
answerList.add(answer);
}
编辑:根据以下答案,我在验证时遇到了问题。