@Autowired使用问题报空指针NullPointerException

本文探讨了在Java中使用@Autowired注解时遇到的NullPointerException问题。当省略@Autowired,接口注入将失败,导致空指针异常。异常信息包括RuntimeException及常见子类如NullPointerException。了解这些异常对于正确处理和预防程序错误至关重要。解决方案在于确保@Autowired注解用于每个需要注入的对象,以避免未分配内存导致的空指针异常。

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

异常信息,没想到是@Autowired使用问题

解决:每次注入接口的时候都必须引入@Autowired注解,省略就会报null,@Autowired每次只能注入一个对象(接口)

https://i-blog.csdnimg.cn/blog_migrate/d4681f8b5b8b3eb3f309b0a2e969a8b1.png

如果没有@Autowired注解那么就没有给这个对象(接口)分配内存,就是说当这个对象(接口)在使用其类的方法时没有指向内存空间而引发了空指针异常,也就是NullPointerException

Throwable是异常类的顶级父类,它也是继承于Object超级类。

Exception 则表示一般性的异常,而且这种异常是设计中早已考虑到很常见的错误,并且一定要求在设计中说明如何处理这种异常。

Error主要是用于表示Java和虚拟机内部的异常信息,Exception异常则是由于程序中可能存在各种的问题,是需要使用者去注意和捕获的异常。

RuntimeException异常信息

RuntimeException类叫检查异常类,所有方法都可以在不声明throws的情况下抛RuntimeException及其子类,如 java.lang.NullPointerException,通常来说就是运行时产生的错误。

所有的非RuntimeException类叫非检查异常类

关于runtime异常处理try{}catch解决办法

RuntimeException会报它的子类异常信息,这是我们的代码出现了错我,必须通过找到异常错误并修改才会避免。try{}catch使用到调用方法上面可以保证程序的运行,不至于让项目崩掉,但是错误仍然无法解决。

常见的其他RuntimeException子类

  1. NullPointerException,上面讲到的,他是最常见的子类
  2. NumberFormatException:继承IllegalArgumentException,字符串转换为数字时出现。比如int i= Integer.parseInt(“ab3”);
  3. ArrayIndexOutOfBoundsException:数组越界。比如 int[] a=new int[3]; int b=a[3];
  4. StringIndexOutOfBoundsException:字符串越界。比如 String s=”hello”; char c=s.chatAt(6);
  5. ClassCastException:类型转换错误。比如 Object obj=new Object(); String s=(String)obj;
  6. UnsupportedOperationException:该操作不被支持。如果我们希望不支持这个方法,可以抛出这个异常。既然不支持还要这个干吗?有可能子类中不想支持父类中有的方法,可以直接抛出这个异常。
  7. ArithmeticException:算术错误,典型的就是0作为除数的时候。
  8. IllegalArgumentException:非法参数,在把字符串转换成数字的时候经常出现的一个异常,我们可以在自己的程序中好好利用这个异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值