0

所以可以说我有这样的课程:

public class MyClass
{
    public int myInt = 5;
}

现在我不希望这种情况发生:

MyClass myObject = new MyClass();
myObject.myInt = 10;

我只想让“myInt”只读。我怎样才能做到这一点?

4

4 回答 4

3

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

两种解决方案都有优点但也有缺点:

  • final 将使其在课堂内也只读,
  • 私人不会保证它不会被更改reflection
于 2013-02-15T01:55:26.167 回答
2

用于private使其不可访问,或使其final不可变。

于 2013-02-15T01:53:12.117 回答
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
于 2013-02-15T01:55:40.897 回答
0

AFAIK 没有办法做到这一点。将 myInt 设为私有并声明一个公共 getter 函数。你想达到什么目的?

public class MyClass
{
    private int myInt = 5;

    public int getInt() { return myInt; }
}
于 2013-02-15T01:56:50.723 回答