In C++ you could write
Int getX() const { return x; }
Is there an equivalent method structure in Java using final?
What about passing const/ final modified arguments to methods?
Like this C++ code
void printX(const int x);
对于 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 中没有办法标记这样的方法。