猿问

SSM中,Method的invoke方法调用基于注解的Service有空指针异常 ?

@Component
@RequestMapping("/student")
public class StudentController extends BaseController {

	@Autowired
	StudentService studentService;
	
	@RequestMapping(value = "/listStudent")
	public void list() throws Exception {	
		...
		//这里调用getStudents方法正常
		List<Student> stuList = this.getStudents();
		...
	}
	
	public List<Student> getStudents() {
		try {
			List<Student> stuList = studentService.listStudent(page, rows, sort, order);
			return stuList;
		} catch (Exception e) {
			e.printStackTrace();
		}	
		return null;
	}

	@RequestMapping(value = "/export")
	public void export() throws Exception {
		...
		// 获取类
		//根据传过来的参数 className, methodName 调用相应的方法
		Class clazz = Class.forName(className);
		Object o = clazz.newInstance();
		Method m = clazz.getDeclaredMethod(methodName);
		//这里调用getStudents方法出现studentService空指针异常
		List list = (List) m.invoke(o);
		...
	}
}

以上是省略过的代码!

御羽倾城
浏览 4512回答 3
3回答

灬java

这里返回空

慕的地7538294

不知道你用反射的意图,既然已经注入service。 按照错误提示,调试一下吧,找到空指针的地方。

慕的地7538294

也就是说你的m是null
随时随地看视频慕课网APP

相关分类

Java
我要回答