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

从Sentence类向Word类传递数组时遇到的问题及代码示例

问题分析与修复方案

我来帮你拆解这段代码里的问题,一步步解决数组传递的问题:

1. Sentence类中的核心错误

你在定义数组时,错误地用+拼接了多个字符串:

private static String[] arrayList = { "Everybody", "was", "having" + "fun" + "at" + "the party" };

这会导致数组的第三个元素变成"havingfunatthe party",而不是你预期的多个独立单词——现在数组长度只有3,完全不符合拆分句子为单词的需求。你应该把每个单词单独作为数组元素,去掉多余的+:

private static String[] sentenceWords = { "Everybody", "was", "having", "fun", "at", "the party" };

另外,变量名arrayList容易误导,因为这是一个普通数组(String[]),不是Java集合类的ArrayList,建议改成更清晰的名字比如sentenceWords。

2. Word类中的多处问题

2.1 拼写错误扎堆

  • 方法名getArayList少了字母r,应该是getArrayList;
  • 数组变量名araylist同样拼写错误;
  • 调用静态方法时写了Exper.getArrayList(),但不存在Exper这个类,正确的应该是Sentence.getArrayList()。

2.2 多余的方法参数

你的getArrayList方法定义了String[] a参数,但整个方法里完全没用到它,直接删掉就行。

2.3 无意义的继承

Word extends Sentence完全没必要,因为静态成员(静态方法、静态变量)不需要通过继承就能访问,直接通过类名调用即可。继承在这里反而会让代码逻辑混乱,建议去掉继承关系。

修正后的完整代码

优化后的Sentence类

public class Sentence {
    // 修正数组元素,并重命名变量提升可读性
    private static String[] sentenceWords = { "Everybody", "was", "having", "fun", "at", "the party" };

    public static String[] getSentenceWords() {
        // 返回数组副本,避免外部直接修改原数组(可选但更安全)
        return sentenceWords.clone();
    }
}

这里加了一个小优化:返回数组的副本sentenceWords.clone(),防止外部调用者直接修改Sentence类内部的原数组,保证数据安全性。

修正后的Word类

public class Word {
    public void printSentenceWords() {
        // 直接通过类名调用Sentence的静态方法获取数组
        String[] words = Sentence.getSentenceWords();
        for (String s : words) {
            System.out.print(s + " ");
        }
        // 可选:打印完后换行,避免后续输出连在一起
        System.out.println();
    }
}

我把方法名改成了printSentenceWords,更贴合它的实际功能(打印句子单词),避免和获取数组的方法混淆。

测试代码

你可以用这段代码验证修复后的功能:

public class Main {
    public static void main(String[] args) {
        Word word = new Word();
        word.printSentenceWords();
        // 输出:Everybody was having fun at the party 
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:06:12