在以下代码中,我在namespaceMap的返回时收到错误。不知道为什么。 getOrDefault Methode应该在HashMap.class中定义。我试图创建一个NamespaceMapper,如链接示例https://www.intertech.com/Blog/jaxb-tutorial-customized-namespace-prefixes-example-using-namespaceprefixmapper/
中所述 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);
}}
答案 0 :(得分:3)
在Java 8中引入了getOrDefault
方法。通过运行java -version
来检查您正在使用的Java运行时版本。如果您使用的是低于Java 8(1.8)的内容,则升级并且您的代码应该可以正常工作。