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