Java 在没有实例引用的情况下存储和访问类中的对象
我知道在C#中可以这样做,但在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
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的静态类是可能的,两者都是坏模式