使用带有mutator方法的final修饰符

时间:2013-06-01 22:38:10

标签: java c++ mutators

在C ++中你可以写

Int getX() const { return x; }

Java中是否有使用final的等效方法结构?

如何将const / final修改的参数传递给方法?

喜欢这个C ++代码

void printX(const int x); 

1 个答案:

答案 0 :(得分:2)

对于C ++示例:

void printX(const int x);

您可以在方法参数中使用final修饰符来指示无法在方法内修改参数:

void printX(final int x) {
    System.out.println(x);
    x++; //compiler error since `x` is marked as final
}

请注意,对象引用变量使用final修饰符只是意味着无法修改引用,但其内部内容仍然可以:

class Foo {
    int x = 0;
}
class Bar {
    changeFoo(final Foo foo) {
        foo.x = foo.x + 1; //allowed even if `foo` is marked as final
        foo = new Foo(); //compiler error...
    }
}

来自SJuan76对此代码的评论

Int getX() const { return x; }
  

它告诉我们在调用此方法时不会修改类状态。

Java中没有办法标记这样的方法。