【问题标题】:The method getOrDefault(String, String) is undefined for the type Map<String,String>方法 getOrDefault(String, String) 未定义 Map<String,String> 类型
【发布时间】:2017-04-06 09:39:50
【问题描述】:

在以下代码中,我在命名空间映射返回时收到错误。不知道为什么。 getOrDefault Methode 应该在 HashMap.class 中定义。我尝试按照链接示例https://www.intertech.com/Blog/jaxb-tutorial-customized-namespace-prefixes-example-using-namespaceprefixmapper/

中的描述创建一个 NamespaceMapper
 import java.util.HashMap;
 import java.util.Map;

 import com.sun.xml.bind.marshaller.NamespacePrefixMapper;

 public class FimsNamespacePrefixMapper extends NamespacePrefixMapper {

 private Map<String, String> namespaceMap = new HashMap<>();

 public FimsNamespacePrefixMapper() {
    namespaceMap.put("http://base.fims.tv", "bms");
    namespaceMap.put("http://transformmedia.fims.tv", "tms");
 }

 @Override
 public String getPreferredPrefix(String arg0, String arg1, boolean arg2) {
    return namespaceMap.getOrDefault(arg0, arg1);
 }}

【问题讨论】:

  • 你遇到了什么异常?
  • 您使用的是哪个 Java 版本?该方法是在 Java 8 中引入的

标签: java dictionary hashmap


【解决方案1】:

getOrDefault 方法是在 Java 8 中引入的。通过运行 java -version 检查您正在使用的 Java 运行时版本。如果您使用的是低于 Java 8 (1.8) 的版本,请升级,您的代码应该可以工作。

【讨论】:

    猜你喜欢
    • 2012-12-11
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 2012-09-19
    • 2015-07-30
    • 1970-01-01
    相关资源
    最近更新 更多