java - 我想扩展ArrayList来实现但无法访问element Data private var

标签 java collections arraylist overriding extend

我想知道如何重写 ArrayList 子类中的 indexOf() 方法。我需要使用相同的方法来访问 私有(private) transient elementData var。

我该如何解决我的设计问题?

编辑:将对 elementData[i] 的调用更改为类似的 this.get(i) 是否是一个有效的解决方案(实际上是允许的?)。它会以某种方式破坏或破坏逻辑吗?

最佳答案

基本上你不应该这样做。如果您想要创建一个行为方式与 ArrayList 不同的集合,请使用组合ArrayList 的私有(private)细节是私有(private)的,这是有充分理由的;它们是可能在版本之间发生变化的实现细节,您的代码不应该关心它们。

(可能扩展ArrayList实际上是一种有效的方法,但在我看来不太可能。你还没有说出你真正想要实现的目标,只是什么阻止了您无法实现这一目标。如果您能告诉我们更多有关总体情况的信息,我们就更有可能提供帮助。)

关于java - 我想扩展ArrayList来实现但无法访问element Data private var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11764085/

相关文章:

javascript - meteor :如何在 collectionHandle.ready() 为真后触发辅助函数的重新运行

java - 可逆迭代器

java - 如何为 ArrayList 中的相应数据赋值

java - Java中的UDP认为UDP有 "connections"

java - JFilechooser 中的 headless 异常

c# - 比较在 Order by 中不起作用?

java - 如果 ArrayList 包含重复项,则返回 true?然后退回重复的卡?

java - 在 Array 与 ArrayList 中转换对象并调用该对象的方法

java - Docker 支持 - Google App Engine (Java)

java - PowerMockito whenNew 返回 null