所以可以说我有这样的课程:
public class MyClass
{
public int myInt = 5;
}
现在我不希望这种情况发生:
MyClass myObject = new MyClass();
myObject.myInt = 10;
我只想让“myInt”只读。我怎样才能做到这一点?
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
。用于private
使其不可访问,或使其final
不可变。
将变量设为私有并添加一个 getter 方法。
public class MyClass
{
private int myInt = 5;
public int getMyInt(){
return this.myInt;
}
}
MyClass myObject = new MyClass();
myObject.getMyInt(); //This will return 5
AFAIK 没有办法做到这一点。将 myInt 设为私有并声明一个公共 getter 函数。你想达到什么目的?
public class MyClass
{
private int myInt = 5;
public int getInt() { return myInt; }
}