使用spring在一个类中调用另一个类的方法报空指针异常的解决方法

本文探讨了在Java及Spring框架中不同类之间方法调用的正确方式,包括普通类调用、Spring环境中Service注入调用,以及不推荐的直接实例化调用和静态方法调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Java中的一个类调用另一个类中的方法

方法1. 新建一个类。然后在调用类中先进行被调用类实例化,然后通过实例化的对象访问。
在这里插入图片描述
在这里插入图片描述

方法2.新建一个类,将该类中需要被调用的方法设置为静态(static)。然后在调用类中直接通过类名进行访问。调用格式为:类名.方法名(参数表)。
在这里插入图片描述
在这里插入图片描述

二、使用spring+springmvc时则不能直接进行调用。

1.这是CourserecordController 类中的方法:selectInsertId

@Controller
@RequestMapping("/courserecord")
public class CourserecordController {

	@Autowired
	public   CourserecordService courserecordService ;
	@ResponseBody
	@RequestMapping("/selectInsertId")
	public  Integer selectInsertId(){
		
	Integer id=courserecordService.selectInsertId();
	
		return id;
		}
	}


@Controller
@RequestMapping("/studenttask")
public class StudenttaskController {
	@Autowired
	private  StudenttaskService studenttaskService;    //自动注入
	 */
	@ResponseBody
	@RequestMapping("/insertTask")
	public  Integer Studenttask(HttpServletRequest req) throws Exception{
	//这是错误的用法
 // CourserecordController cod=new CourserecordController ();
		//			cod.insertStudentTask(stu);
		//正式正确的用法
		Integer id =studenttaskService.insertStudentTask(stu);
				}
}
> spring 中一个类的方法被另一个类调用时,不能直接实例化这个类,再调用其中的方法;也不可以把通过service调用的方法直接定义为静态直接直接类名.方法名调用。
> 必须使用service注入的方式,用service.方法名去调用这个方法。因为spring 直接new
> 出的对象,无法自动注入@Autowired进入的spring bean**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值