0

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); 
4

1 回答 1

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 中没有办法标记这样的方法。

于 2013-06-01T22:41:30.120 回答