所以我想说我有一个这样的课:
public class MyClass
{
public int myInt = 5;
}
现在我不希望这种情况发生:
MyClass myObject = new MyClass();
myObject.myInt = 10;
我只想让“myInt”只读。我怎么能这样做?
答案 0 :(得分:2)
I just want "myInt" to be read only
将其设为final
public class MyClass
{
public final int myInt = 5;
}
或private
并添加getter方法
public class MyClass
{
private int myInt = 5;
public int getMyInt(){
return myInt;
}
}
这两种解决方案都有优点,但也有缺点:
reflection
更改。答案 1 :(得分:1)
使用private
使其无法访问,或使其final
使其不可变。
答案 2 :(得分:1)
将变量设为私有并添加getter方法。
public class MyClass
{
private int myInt = 5;
public int getMyInt(){
return this.myInt;
}
}
MyClass myObject = new MyClass();
myObject.getMyInt(); //This will return 5
答案 3 :(得分:0)
AFAIK没有办法做到这一点。使myInt变为私有并声明一个公共getter函数。你想要完成什么?
public class MyClass
{
private int myInt = 5;
public int getInt() { return myInt; }
}