Java 如何在Spring中从另一个类访问变量
我试图通过Spring中的自动连接从另一个类访问变量,但我得到了一个空指针。我唯一能做的就是将其新实例化为静态。是否有一种方法可以在非静态上下文中访问变量-可能类似于自动连线 通过静态:Java 如何在Spring中从另一个类访问变量,java,spring,javafx,Java,Spring,Javafx,我试图通过Spring中的自动连接从另一个类访问变量,但我得到了一个空指针。我唯一能做的就是将其新实例化为静态。是否有一种方法可以在非静态上下文中访问变量-可能类似于自动连线 通过静态: @Component @Scope(proxyMode = ScopedProxyMode.TARGET_CLASS, value = "prototype") public class ClassWhereVariableIsNeeded { public static void setViews(
@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;
.
.
.
若要访问任何变量和/或方法,必须将此变量/方法访问修饰符设置为高于private。 private修饰符限制对定义类或内部类的访问,而不限制对其他任何地方的访问。
您可以为其他类提供public/default/package访问方法来使用/访问您的私有变量如果您按照需要@Autowired view执行操作,会发生什么?变量视图仍然未设置?抱歉,但是为什么需要公共类视图扩展需要变量的类?单靠类视图还不够吗?可能是从ClassWhereVariablesNeeded的构造函数调用私有void方法吗?难道通过类层次结构将此变量ThisVariable向上拉入ClassWhereVariablesNeeded不是最简单的解决方案吗?当您尝试按您想要的方式执行时,有什么不起作用?基于您在这里提供的非常有限的信息,它应该可以工作…变量在默认范围内。默认访问修饰符非常严格,它只是比私有的开放一点…问题中所述的问题与变量范围无关。