Java:变量访问说明符
Java: Variable access specifiers
在 java 中,是否有一种(直接)方法可以使变量可以从 class 中访问但不能更改?我在 class A 中有一个变量,在 class B 中需要它。我可以将其设为 public(不良做法),但我不希望 class B 成为能够改变它。有没有办法做到这一点,或者我只需要做到 public 并小心点?我还需要保持从 Class A 中更改变量的能力,排除最终。
是:您可以提供 getter。差不多就是这样,但这就是你应该做的方式。
public Type getField() {
return field;
}
您可以使用反射来读取私有值。
public class 测试 1 {
private int num;
public Test1(int n){
this.num =n;
}
}
访问私有变量
Field classField = Test1.class.
getDeclaredField("num");
classField.setAccessible(true);
classField.getInt(t);
System.out.println(classField.getInt(t));
在 java 中,是否有一种(直接)方法可以使变量可以从 class 中访问但不能更改?我在 class A 中有一个变量,在 class B 中需要它。我可以将其设为 public(不良做法),但我不希望 class B 成为能够改变它。有没有办法做到这一点,或者我只需要做到 public 并小心点?我还需要保持从 Class A 中更改变量的能力,排除最终。
是:您可以提供 getter。差不多就是这样,但这就是你应该做的方式。
public Type getField() {
return field;
}
您可以使用反射来读取私有值。
public class 测试 1 {
private int num;
public Test1(int n){
this.num =n;
}
}
访问私有变量
Field classField = Test1.class.
getDeclaredField("num");
classField.setAccessible(true);
classField.getInt(t);
System.out.println(classField.getInt(t));