未定义 String 类型的方法 join (String, List<String>)

我正在学习 Java,我遇到了一个关于哈希映射的教程,并开始像我的导师一样输入相同的代码。问题是当我遇到 String.join 方法时,我得到了一个错误而我的导师没有,我不知道为什么。


这是错误:


The method join(String, List<String>) is undefined for the 

type String

你能告诉我有什么问题吗?


private String getZnanjaList(){


    List <String> listaZnanja = new ArrayList<>();


    for (String znanje : this.znanja.keySet()){

        listaZnanja.add(znanje + ": " + this.znanja.get(znanje));

    }


    return String.join("; ", listaZnanja);

}


萧十郎
浏览 741回答 3
3回答

喵喵时光机

当您转向String.join()的 javadoc 时,您会发现:public static String join(CharSequence delimiter,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Iterable<? extends CharSequence> elements)Returns a new String composed of copies of the CharSequence elements joined together with a copy of the specified delimiter....Since:1.8这就是全部内容:您必须使用旧版本的 Java。因此:您应该检查系统上可用的 JDK 版本(分别在调用 javac 时使用,或 IDE 指向的内容),并限制自己使用该版本的内容,或者(推荐)直接跳到 Java 8 ,或 Java 11。

墨色风雨

正如其他人提到的,该String功能出现在 Java 8 及以后版本中。如果您打算坚持使用 Java 7,则可以使用以下解决方案:private String getZnanjaList(){&nbsp; &nbsp; List <String> listaZnanja = new ArrayList<>();&nbsp; &nbsp; /*Map<String, String> znanja = new HashMap<>();&nbsp; &nbsp; znanja.put("fruit", "apple");&nbsp; &nbsp; znanja.put("animal", "dog");&nbsp; &nbsp; znanja.put("vehicle", "ford");*/&nbsp; &nbsp; for (String znanje : znanja.keySet()){&nbsp; &nbsp; &nbsp; &nbsp; listaZnanja.add(znanje + ": " + znanja.get(znanje));&nbsp; &nbsp; }&nbsp; &nbsp; StringBuilder sb = new StringBuilder();&nbsp; &nbsp; for(String s : listaZnanja) {&nbsp; &nbsp; &nbsp; sb.append(";").append(s);&nbsp; &nbsp; }&nbsp; &nbsp; return sb.deleteCharAt(0).toString();}在这种方法中,我们利用了StringBuilder类。您可以在文档中找到更多信息

四季花海

错误消息告诉您该类型String没有带有签名的方法join(String, List<String>)。由于String用Java 8确实有方法&nbsp;String.join(CharSequence, Iterable<CharSequence>),其将匹配(String是一种类型的CharSequence,并List是一种类型的Iterable),这意味着,不使用的Java 8或更新版本。可能的解决方案:将您的 JRE 或 JDK 更新到 Java 8 或更高版本。更改一些内容,使您的代码使用机器上已有的 Java 8 或更高版本的 JRE 或 JDK。更改代码,使其不依赖于 Java 8 功能。更新到 Java 8 或更高版本是显而易见的选择。请注意您使用的是 JRE/JDK 而不是不同的。例如,Microsoft 经常将路径设置为指向其 JRE,该 JRE 可能较旧。从命令提示符,您可以运行java&nbsp;-version检查您的版本。互联网上已经有许多站点可以帮助您将 Java 指向正确的 JDK 或 JRE。例如这个答案。如果您仍然遇到问题,您可能想要发布一个关于您的%PATH%和%JAVA_HOME%变量(我假设是 Windows)以及您要使用的 JRE/JDK 的位置的新问题。如果您只需要更新,搜索“下载 Java 8”应该会让您到达那里。这个答案解释了如何手动执行此操作。同一问题的其他答案建议有用的图书馆。但实际上,更新为使用 Java 8 可能更好。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java