当我尝试从注入的对象访问字段时,出现了一些空指针异常。我将展示一个简单的例子。我正在使用lokbok批注@Getter
和@Setter
。
我有一堂简单的课。
public class MyClass {
/*
* Field
*/
private @Getter @Setter String myName;
public MyClass(){
}
}
然后我上另一堂课
public class AnotherClass {
/*
* Field
*/
private MyClass myClass;
public AnotherClass(){
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
myClass = context.getBean("myClass", MyClass.class);
((ConfigurableApplicationContext) context).close();
myClass.setMyName("Hello");
}
}
如果我从第三类访问字段myName
,就像这样。
public class ThirdClass {
/*
* Field
*/
private MyClass myClass;
public ThirdClass(){
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
myClass = context.getBean("myClass", MyClass.class);
((ConfigurableApplicationContext) context).close();
System.out.println(myClass.getMyName());
}
}
它将打印出null
作为输出。我创建了这样的Beans.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- Create my class -->
<bean id="myClass" class="MyClass"></bean>
</beans>
问题:
它会表现得那样吗?
如果我不想拥有null
,我错过了什么吗?
正在使用的软件: