2016-02-12 71 views
-2

在java中,是否有一种(直接)方法使变量能够被访问出类但不能被更改?我在A类中有一个变量,在B类中需要它。我可以将它公开(坏习惯),但我不希望B类能够改变它。有没有办法做到这一点,或者我只需要公开并小心呢?此外,我需要保持从A级内部变更变量的能力,排除最后的变数。Java:变量访问说明符

+0

请参考,http://stackoverflow.com/questions/14324805/class-variable-public- access-read-only-but-private-access-rw – Prabhakar

+0

http://stackoverflow.com/questions/8151342/do-we-have-a-readonly-field-in-java-which-is-set-able-在范围内的C http://stackoverflow.com/ques tions/14324805/class-variable-public-access-read-only-but-private-access-r-w – Prabhakar

回答

2

是的:你可以提供一个吸气剂。这几乎是它,但这就是你如何假设来做到这一点。

public Type getField() { 
    return field; 
} 
+1

虽然 –

+0

虽然它不是正确答案,但我认为这不是“直接”。 – Thilo

+1

@BenjaminLowry在OP语言中,它是Java语言中最接近的东西。 –

1

您可以使用反射来读取私有值。

公共类的Test1 {

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));