You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java LinkedList复制报错:clone()方法为何提示访问权限错误?

问题解答

关于红色波浪线

这个红色波浪线是IntelliJ的编译错误提示标记,代表该行代码存在语法或访问权限类的编译错误,代码无法正常编译运行。

clone()报错原因

你将leftover声明为Queue<Character>类型,虽然实际实例是LinkedList,但Java编译阶段只会检查变量声明类型的可用方法。Queue接口并未重写Object类的clone()方法,而Object的clone()是protected访问权限,只能在类内部或子类中调用,因此你无法通过Queue类型的引用直接调用该方法。

修正方案

方案1:修改变量声明类型

把leftover的声明改为LinkedList<Character>,这样就能直接调用LinkedList重写的clone()方法,且无需强制类型转换:

LinkedList<Character> leftover = new LinkedList<>();
// ... 其他代码
tem_left = leftover.clone();

方案2:使用集合构造方法复制(更推荐)

Java集合框架提供了通过现有集合创建新集合的构造方法,这种方式更通用,也符合集合操作规范:

tem_left = new LinkedList<>(leftover);

额外代码逻辑错误修正

你的内层循环存在两处逻辑错误:

  1. 循环中误用stone_list[i],应该从tem_left队列中取出当前元素进行判断
  2. 直接循环tem_left.size()会因为每次poll()操作改变队列大小,导致循环次数不准确,需要先记录队列初始大小

修正后的内层循环代码:

int size = tem_left.size();
for (int j = 0; j < size; j++) {
    char currentStone = tem_left.poll();
    if (tem_jewel != currentStone) {
        leftover.offer(currentStone);
    } else {
        count++;
    }
}

完整修正后的代码

package lc_771_Jewels;

import java.util.LinkedList;
import java.util.Queue;

public class Jewels_discuss {
    public int count_jewels(String jewels, String stones){
        char[] jewels_kind = jewels.toCharArray();
        char[] stone_list = stones.toCharArray();
        int count = 0;
        Queue<Character> tem_left = new LinkedList<>();
        for (char stone : stone_list) {
            tem_left.offer(stone);
        }
        for (char tem_jewel : jewels_kind) {
            Queue<Character> leftover = new LinkedList<>();
            int size = tem_left.size();
            for (int j = 0; j < size; j++) {
                char currentStone = tem_left.poll();
                if (tem_jewel != currentStone) {
                    leftover.offer(currentStone);
                } else {
                    count++;
                }
            }
            tem_left = new LinkedList<>(leftover);
        }
        return count;
    }
}

内容的提问来源于stack exchange,提问作者acfun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 07:06:32