Java 类型映射的方法getOrDefault(String,String)未定义<;字符串,字符串>;
在下面的代码中,我在返回namespaceMap时得到一个错误。不知道为什么。getOrDefault方法应在HashMap.class中定义。我尝试创建一个名称空间映射器,如链接示例中所述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{ 私有映射
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);
}}