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

Java String类型返回方法是否合规?运行出现Launch error求排查

排查你的Java方法错误 & 确认返回类型使用正确性

首先先给你吃个定心丸:你对方法返回类型的使用是正确的——方法声明为String类型,你也确实在方法末尾返回了一个String对象,这完全符合作业的要求。

接下来咱们说说导致Launch error的核心问题:

  • 你的代码里有一行pros.get(System.out);,这是完全错误的!Properties.get()方法要求传入一个String类型的属性键名(比如"os.name")来获取对应的值,但你传的System.out是一个PrintStream对象,类型完全不匹配,这会直接触发编译错误,进而导致启动失败。这行代码看起来是多余的,直接删掉就能解决最核心的问题。

另外,我还帮你优化了代码的其他细节,让它更高效、可读性更强:

  • 你之前重复调用了好几次System.getProperty(),比如os.name被调用了三次,我把这些属性值提前存到变量里,既减少了重复调用的开销,也让代码更整洁。
  • 你原来的返回值是把所有属性直接生硬拼接在一起,可读性很差,我用StringBuilder构建了一个和控制台输出格式一致的字符串,这样返回的内容更有意义,也和你打印的内容对应上了。

修正后的完整代码如下:

public static String displaySystemProperties() {
    // 提前获取所有需要的系统属性并存储到变量
    String osArch = System.getProperty("os.arch");
    String osName = System.getProperty("os.name");
    String osVersion = System.getProperty("os.version");
    String userName = System.getProperty("user.name");
    String javaVersion = System.getProperty("java.version");

    // 使用StringBuilder构建要返回的字符串
    StringBuilder resultBuilder = new StringBuilder();
    resultBuilder.append("\n");
    resultBuilder.append("*****System Properties*****").append("\n");
    resultBuilder.append("Operating System Architecture: ").append(osArch).append("\n");
    resultBuilder.append("Operating System Name: ").append(osName).append("\n");
    resultBuilder.append("Operating System Version: ").append(osVersion).append("\n");
    resultBuilder.append("User Account Name: ").append(userName).append("\n");
    resultBuilder.append("Java Version: ").append(javaVersion).append("\n\n");

    // 操作系统判断逻辑
    if ("Windows 10".equals(osName)) {
        resultBuilder.append("Thumbs up! Your operating system is Windows 10").append("\n");
    } else if ("Linux".equals(osName)) {
        resultBuilder.append("Thumbs down! Your operating system is Linux").append("\n");
    } else {
        resultBuilder.append("Your choice of operating system is ok").append("\n");
    }

    // 控制台输出(如果不需要可以删除这行)
    System.out.print(resultBuilder);

    // 返回构建好的字符串
    return resultBuilder.toString();
}

额外提个小细节:我把osName.equals("Windows 10")改成了"Windows 10".equals(osName),这样可以避免如果osName为null时抛出空指针异常,是个更安全的写法~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 15:07:29