Java 如何在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(

我试图通过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;
    .
    .
    .

若要访问任何变量和/或方法,必须将此变量/方法访问修饰符设置为高于private。 private修饰符限制对定义类或内部类的访问,而不限制对其他任何地方的访问。
您可以为其他类提供public/default/package访问方法来使用/访问您的私有变量

如果您按照需要@Autowired view执行操作,会发生什么?变量视图仍然未设置?抱歉,但是为什么需要公共类视图扩展需要变量的类?单靠类视图还不够吗?可能是从ClassWhereVariablesNeeded的构造函数调用私有void方法吗?难道通过类层次结构将此变量ThisVariable向上拉入ClassWhereVariablesNeeded不是最简单的解决方案吗?当您尝试按您想要的方式执行时,有什么不起作用?基于您在这里提供的非常有限的信息,它应该可以工作…变量在默认范围内。默认访问修饰符非常严格,它只是比私有的开放一点…问题中所述的问题与变量范围无关。