Java 在没有实例引用的情况下存储和访问类中的对象

Java 在没有实例引用的情况下存储和访问类中的对象,java,static,Java,Static,我知道在C#中可以这样做,但在Java中呢?我已经测试过了,它可以工作,但是应该避免吗?如果是,为什么 public class A { public A() { B.set(this); } } public final class B { private static A a; public static void set(A a) { this.a = a; } public stat

我知道在C#中可以这样做,但在Java中呢?我已经测试过了,它可以工作,但是应该避免吗?如果是,为什么

public class A {
     public A() {
          B.set(this);
     }
}

public final class B {
     private static A a;

     public static void set(A a) {
          this.a = a;
     }

     public static A get() {
          return a;
     }

     private B() {
     }
}
在Java中

private static A a;
被称为类字段,它具有相同的值,或者在本例中指向该类的每个实例中的相同对象。也可以在不创建类实例的情况下访问它,在本例中为B.get()。你可以改变这个

public static void set(A a) {
     this.a = a;
}

public static A get() {
     return a;
}
对此

public static void set(A a) {
     B.a = a;
}

public static A get() {
     return B.a;
}
在Java中

private static A a;
被称为类字段,它具有相同的值,或者在本例中指向该类的每个实例中的相同对象。也可以在不创建类实例的情况下访问它,在本例中为B.get()。你可以改变这个

public static void set(A a) {
     this.a = a;
}

public static A get() {
     return a;
}
对此

public static void set(A a) {
     B.a = a;
}

public static A get() {
     return B.a;
}

不清楚的是:应该避免静态访问,或者allIn Java和C#bot的静态类是可能的,两者都是坏模式不清楚的是:应该避免静态访问,或者allIn Java和C#bot的静态类是可能的,两者都是坏模式