반사 사용 시 이상 발생 NoSuchMethodException 해결
9259 단어 자바
public class Person {
public String name;
protected int age;
char sex;
private String address;
public Person() {
System.out.println(" ");
}
private Person(String name, int age, char sex, String address) {
System.out.println(" ");
this.name = name;
this.age = age;
this.sex = sex;
this.address = address;
}
public void show(Object obj) {
System.out.println(obj);
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", sex=" + sex + ", address=" + address + "]";
}
}
import java.lang.reflect.Method;
public class ReflectMethod {
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("test.Person");
Method[] methods = clazz.getMethods();
methods = clazz.getDeclaredMethods();
for (Method m : methods) {
System.out.println(m);
}
System.out.println("----------------------");
Person p = (Person) clazz.newInstance();
Method method = clazz.getMethod("show");
System.out.println(method);
}
}
현재 멤버 들 을 반사 적 으로 보 여 주 려 면 다음 과 같은 이상 이 발생 합 니 다.
Exception in thread "main" `java.lang.NoSuchMethodException`: test.Person.show()
at java.lang.Class.getMethod(Unknown Source)
at test.ReflectMethod.main(ReflectMethod.java:15)
이상 하 다 는 뜻 은'이런 방법 이 없다'는 것 이다.원래 의 show 방법 에 Object 형식의 매개 변수 가 포함 되 어 있 는데 사용
getMethod
할 때 매개 변 수 를 주지 않 아서 이 방법 을 찾 을 수 없다.그러므로 오류 코드 를Method method = clazz.getMethod("show",Object.class);
이 프로그램 실행 결 과 는?
public void xxx.xxx.Person.show(java.lang.Object)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.