我想知道在Java中是否有相当于c ++的const.我理解final关键字,但遗憾的是我无法使用它来声明函数返回值final.相反,它始终确保功能不能被覆盖,正确吗?
基本上,我想确保给定的返回类不能被修改并且是只读的.这可能在Java中吗?
mre*_*mre 19
基本上,我想确保给定的返回类不能被修改并且是只读的.这可能在Java中吗?
不是直接的,但一种解决方法是不可变对象.
示例 -
public final Foo{
private final String s;
public Foo(String s){
this.s = s;
}
// Only provide an accessor!
public String getString(){
return s;
}
}
Run Code Online (Sandbox Code Playgroud)
And*_*mas 13
Java不支持对象引用的const限定.
解决方法包括以下内容:
不可变对象阻止接收者修改,但它们也阻止通过任何引用进行修改.它们不等同于C++ const指针/引用.
最近的是只读接口类型.您可以将const-correct C++类映射到两个Java单元,一个是仅具有const限定方法的接口.
这有时很有用,可以控制可以修改类实例的内容.但是,它并没有像在C++中那样频繁地完成.