Class c = v.getClass();
try {
Method m = c.getMethod("something");
if(!m.getReturnType().equals(Boolean.TYPE)) {return false;}
} catch(NoSuchMethodException e) {return false;}
...其中v
是某个类的对象
当我尝试编译时,我得到:
错误:找不到符号
方法m = c.getMethod("某事");
^
Method是一种驻留在java.lang.reflect.Method
中的类型。据我所知java.lang
,默认导入后续内容,但我甚至明确地这样做了:
import java.lang.*;
所以我的问题是:如何让我的编译器识别出类Method
,或者如何存储getMethod
的返回值呢?
P.S:请忽略对getMethod的未经检查的调用,这将是一个不同时间的问题(可能是一个不同的问题)。
答案 0 :(得分:8)
java.lang.
包中的类会自动导入,但这不适用于嵌套包。这不仅适用于java.lang.*
,而且通常对于所有包 - 嵌套包不会自动导入,如果您需要嵌套包中的某些类,则应明确导入它。像这样:
import java.lang.reflect.Method;
答案 1 :(得分:2)
您需要导入java.lang.reflect.Method
或java.lang.reflect.*
。导入java.lang.*
不包含java.lang.reflect
包,因为java.lang.reflect
不是java.lang
的子包(Java中没有包层次结构)。