gpt4 book ai didi

java - 在 Java 中访问没有公共(public)访问器的私有(private)成员

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:09:17 24 4
gpt4 key购买 nike

我遇到了一个挑战,我必须从队列类外部(项目是私有(private)的)获取给定索引处的列表项的值。我不允许修改类,也不允许使用反射。是否可能(在实际情况下,我宁愿创建公共(public)访问器来获取项目值)?

class Queue {
private List<Integer> items;

private Queue() {
items = new ArrayList<Integer>();
}

public static Queue create() {
return new Queue();
}

public void push(int item) {
items.add(item);
}

public int shift() {
return items.remove(0);
}

public boolean isEmpty() {
return items.size() == 0;
}
}

最佳答案

你可以:

  1. 使用shift
  2. Queue中移除所有元素
  3. 将每个移除的元素添加到您自己的ArrayList
  4. 遍历 ArrayList 并使用 push 以相同的顺序将元素重新添加到 Queue 以恢复 >队列到它的原始状态。
  5. 返回 ArrayList 的第 index 个元素。

虽然效率很低,但可以解决您的挑战。

关于java - 在 Java 中访问没有公共(public)访问器的私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33665466/

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