2016-02-12 73 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));