我很反思.我面临一些错误.请帮忙.以下是我的代码:
EmployeeClass.java:
public class EmployeeClass {
private String empID;
private String empName;
public String getEmpID() {
return empID;
}
public void setEmpID(String empID) {
this.empID = empID;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public EmployeeClass(String empID, String empName) {
this.empID = empID;
this.empName = empName;
}
public String getAllDetails() {
return empID + " " + empName;
}
}
Run Code Online (Sandbox Code Playgroud)
ReflectionClass.java:
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class ReflectionClass {
public static void main(String[] args) {
EmployeeClass emp = new EmployeeClass("1", "Emp1");
Method method = null;
try {
method = emp.getClass().getMethod("getAllDetails", null);
System.out.println(method.invoke(null, null));
} catch (NoSuchMethodException | SecurityException
| IllegalAccessException | IllegalArgumentException
| InvocationTargetException e) {
System.out.println(e.getMessage());
}
}
}
Run Code Online (Sandbox Code Playgroud)
在运行ReflectionClass.java时,我收到以下错误:
线程"main"java.lang.NullPointerException中的异常
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at myprgs.programs.ReflectionClass.main(ReflectionClass.java:14)
Run Code Online (Sandbox Code Playgroud)
调用时需要传递类的对象(包含方法)invoke()
,如下所示:
method.invoke(emp, null);
Run Code Online (Sandbox Code Playgroud)
更改:
System.out.println(method.invoke(null, null));
Run Code Online (Sandbox Code Playgroud)
至:
System.out.println(method.invoke(emp, null));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
96 次 |
最近记录: |