Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从java中的静态方法访问非静态成员?_Java_Static - Fatal编程技术网

如何从java中的静态方法访问非静态成员?

如何从java中的静态方法访问非静态成员?,java,static,Java,Static,在这种情况下,我必须从静态方法内部访问非静态成员。我可以使用新实例访问它,但当前状态将丢失,因为非静态成员将被重新初始化。如何在不丢失数据的情况下实现这一点?您所要求的并没有真正意义。只需将您的方法设置为非静态,因为您的静态方法无法绑定到实例。您所要求的并没有真正意义。只需将您的方法设置为非静态,因为您的静态方法不能绑定到实例。静态方法不适用于特定的实例/对象,它们是类级别的东西。因此,没有给它们实例引用。所以,不,你不能这样做 如果您能够以另一种方式确定使用哪个实例引用,那么就可以访问它的非静

在这种情况下,我必须从静态方法内部访问非静态成员。我可以使用新实例访问它,但当前状态将丢失,因为非静态成员将被重新初始化。如何在不丢失数据的情况下实现这一点?

您所要求的并没有真正意义。只需将您的方法设置为非静态,因为您的静态方法无法绑定到实例。

您所要求的并没有真正意义。只需将您的方法设置为非静态,因为您的静态方法不能绑定到实例。

静态方法不适用于特定的实例/对象,它们是类级别的东西。因此,没有给它们实例引用。所以,不,你不能这样做

如果您能够以另一种方式确定使用哪个实例引用,那么就可以访问它的非静态方法


或者,也可以重新构建类,使其成为非静态方法。

静态方法不适用于特定实例/对象,它们是类级别的东西。因此,没有给它们实例引用。所以,不,你不能这样做

如果您能够以另一种方式确定使用哪个实例引用,那么就可以访问它的非静态方法


或者,重新构建类,使其成为非静态方法。

您不能。静态方法不与任何特定状态(即任何非静态成员)关联。换句话说,它们独立于类的任何特定实例运行,因此它们不能依赖于非静态成员。

您不能。静态方法不与任何特定状态(即任何非静态成员)关联。换句话说,它们独立于类的任何特定实例运行,因此它们不能依赖于非静态成员。

非静态成员变量“is state”。它是该类的特定实例的状态

当你说你想访问一个非静态成员变量时,就像说“想访问一个类XXX的特定实例的非静态成员变量”,我的意思是粗体部分是隐式的


所以说“我可以用新实例访问它”是没有意义的。

非静态成员变量“是state”。它是该类的特定实例的状态

当你说你想访问一个非静态成员变量时,就像说“想访问一个类XXX的特定实例的非静态成员变量”,我的意思是粗体部分是隐式的

所以说“我可以用新实例访问它”是没有意义的。

也许你想要一个新实例。然后您可以从静态方法中获取类的(唯一)实例并访问其成员

基本思想是

public class Singleton {
  private static Singleton instance = null;

  private Singleton() {}

  public static Singleton getInstance() {
    if (instance == null) {
        instance = new Singleton();
    }
    return instance;
  }
}
然后在一些静态方法中:

public static someMethod() {
    Singleton s = Singleton.getInstance();
    //do something with s
}
也许你想要一份工作。然后您可以从静态方法中获取类的(唯一)实例并访问其成员

基本思想是

public class Singleton {
  private static Singleton instance = null;

  private Singleton() {}

  public static Singleton getInstance() {
    if (instance == null) {
        instance = new Singleton();
    }
    return instance;
  }
}
然后在一些静态方法中:

public static someMethod() {
    Singleton s = Singleton.getInstance();
    //do something with s
}

这毫无意义。在静态函数中,没有“当前状态”这样的东西,因为没有实例。这没有意义。你为什么要这样做?提供一些你正在尝试做的代码,以及实际问题的描述(根据你的功能要求,而不是技术限制)。一旦原始海报按照反复要求澄清其原始帖子,否决票将更改为赞成票。目前无法回答,这毫无意义。在静态函数中,没有“当前状态”这样的东西,因为没有实例。这没有意义。你为什么要这样做?提供一些你正在尝试做的代码,以及实际问题的描述(根据你的功能要求,而不是技术限制)。一旦原始海报按照反复要求澄清其原始帖子,否决票将更改为赞成票。目前这是无法回答的。