在下面的代码中,我在返回 namespaceMap 时遇到错误。不知道为什么。 getOrDefault 方法应在 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);
}}
最佳答案
getOrDefault
方法是在 Java 8 中引入的。通过运行 java -version
检查您使用的是哪个运行时版本的 Java。如果您使用的是低于 Java 8 (1.8) 的版本,请升级并且您的代码应该可以工作。
关于java - 方法 getOrDefault(String, String) 未定义类型 Map<String,String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43251366/