Java 类型映射的方法getOrDefault(String,String)未定义<;字符串,字符串>;

Java 类型映射的方法getOrDefault(String,String)未定义<;字符串,字符串>;,java,dictionary,hashmap,Java,Dictionary,Hashmap,在下面的代码中,我在返回namespaceMap时得到一个错误。不知道为什么。getOrDefault方法应在HashMap.class中定义。我尝试创建一个名称空间映射器,如链接示例中所述 import java.util.HashMap; 导入java.util.Map; 导入com.sun.xml.bind.marshaller.NamespacePrefixMapper; 公共类FimsNamespacePrefixMapper扩展了NamespacePrefixMapper{ 私有映射

在下面的代码中,我在返回namespaceMap时得到一个错误。不知道为什么。getOrDefault方法应在HashMap.class中定义。我尝试创建一个名称空间映射器,如链接示例中所述

import java.util.HashMap;
导入java.util.Map;
导入com.sun.xml.bind.marshaller.NamespacePrefixMapper;
公共类FimsNamespacePrefixMapper扩展了NamespacePrefixMapper{
私有映射namespaceMap=newhashmap();
公共FimsNamespacePrefixMapper(){
namespaceMap.put(“http://base.fims.tv“,“bms”);
namespaceMap.put(“http://transformmedia.fims.tv“,“tms”);
}
@凌驾
公共字符串getPreferredPrefix(字符串arg0、字符串arg1、布尔值arg2){
返回namespaceMap.getOrDefault(arg0,arg1);
}}

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

您遇到了什么异常?您使用的是哪个Java版本?该方法是用Java8介绍的
 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);
 }}