gpt4 book ai didi

java - C++ 的 const 成员函数的 Java 等价物是什么?

转载 作者:IT老高 更新时间:2023-10-28 21:18:36 26 4
gpt4 key购买 nike

在 C++ 中,我可以定义一个 accessor 成员函数,它返回(或引用)私有(private)数据成员的值,这样调用者就不能以任何方式修改该私有(private)数据成员。

有没有办法在 Java 中做到这一点?

如果有,怎么做?

我知道 final 关键字,但 AFAIK,当应用于 method 时:

  1. 防止覆盖/多态子类中的那个方法。
  2. 使该方法可内联。 (请参阅下面@Joachim Sauer 的评论)

但它并不限制方法返回对数据成员的引用,因此调用者无法修改它。

我是否忽略了一些明显的事情?

最佳答案

在 Java 中没有与 C const “类型修饰符”等效的东西(遗憾)。

你能得到的最接近的方法是返回一个不可变对象(immutable对象)或一个可变对象周围的不可变包装器。

但是,不变性不是 Java 的语言特性,因此您必须依赖库。

不可变对象(immutable对象)的示例如下:

  • 原始包装器IntegerCharacter、..
  • 字符串
  • 文件
  • 网址

常用的不可变包装器(即防止突变的可变类型的包装器)是由 the Collecton.unmodifiable*() methods 返回的那些。 .

关于java - C++ 的 const 成员函数的 Java 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5886439/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com