gpt4 book ai didi

java - 使用 @Autowired Autowiring 后访问对象时出现 nullPointerException

转载 作者:行者123 更新时间:2023-12-02 08:56:15 34 4
gpt4 key购买 nike

我有一个接口(interface)C,想要访问另外两个类中的getClassName()。访问 a.getClassName() 时,method1() 中出现异常。

public interface C {
void getClassName();
}
@Component
public class A implements C{
@Override
public void getClassName() {
System.out.println(" IN A");
}
}
@Component 
public class B implements C{
@Override
public void getClassName() {
System.out.println(" IN B");
}
}

主类

@Configurable
public class D {
@Autowired
A a;
@Autowired
B b;
void method1() {
a.getClassName();
}
void method2() {
b.getClassName();
}
public static void main( String args[]) {
D d =new D();
d.method1();
d.method2();
}
}

我读了一些博客并尝试了自动接线 D,但仍然存在同样的异常。

最佳答案

放置Spring的注解并不意味着你在项目中使用了spring。

应该有某种引导代码为您创建应用程序上下文,并建立应在何处找到 Bean(在本例中用 @Component 注释的类)的规则(扫描策略)。

此外,@Configurable 可能不是您正在寻找的注释(它确实存在并且通常与 AspectJ 相关的东西一起使用,但不适用于此用例)。

您可能正在尝试在这里使用 Spring Boot,因此请尝试以下方法:

  1. 转到:start.spring.io
  2. 配置您选择的工件(使用 Jar 而不是 WAR)
  3. 下载并在 IDE 中打开 pom.xml
  4. 将您的 Bean 添加到包下面的包中,您将在其中找到使用 @SpringBootApplication 注释生成的文件,并具有 main 方法
  5. 运行项目

关于java - 使用 @Autowired Autowiring 后访问对象时出现 nullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60473166/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com