質問

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); 
役に立ちましたか?

解決

For the C++ example:

void printX(const int x);

you can use final modifier in method parameters to indicate the parameter can't be modified inside the method:

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

Note that using final modifier for object reference variables just means that the reference can't be modified, but its inner contents still can:

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

From SJuan76 comment for this code

Int getX() const { return x; }

it tells that the class state is not modified when this method is called.

There's no way in Java to mark a method like this.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top