我试图通过Spring中的自动装配从另一个类访问变量,但我得到一个空指针。我唯一能做的就是将它新实例化为静态。有没有办法可以在非静态环境中访问它(变量) - 可能像自动装配一样?
通过静态:
@Component
@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS, value = "prototype")
public class ClassWhereVariableIsNeeded {
public static void setViews(Views aViews) {
views = aViews;
}
private static Views views;
.
.
.
private void method() {
views.thisVariable.....
}
我喜欢这样:
@Component
@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS, value = "prototype")
public class ClassWhereVariableIsNeeded {
@Autowired
Views views;
.
.
.
private void method() {
views.thisVariable.....
}
变量所在的位置:
@Component
@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS, value = "prototype")
public class Views extends ClassWhereVariableIsNeeded {
ThisVariable thisVariable;
.
.
.
答案 0 :(得分:0)
要访问任何变量和/或方法,必须将此变量/方法访问修饰符设置为高于private。 private修饰符限制对定义(或内部)类中的访问,而不是其他任何地方。 您可以为其他类提供公共/默认/包(访问)方法以使用/访问您的私有变量