2017-04-06 65 views
0

未定義方法getOrDefault(String,String)在命名空間映射返回時出現錯誤。不知道爲什麼。 getOrDefault Methode應該在HashMap.class中定義。我試圖創建一個NamespaceMapper作爲鏈接例如https://www.intertech.com/Blog/jaxb-tutorial-customized-namespace-prefixes-example-using-namespaceprefixmapper/在下面的代碼中,類型Map <String,String>

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

你有什麼異常? – DVarga

+2

您正在使用哪個Java版本?該方法是在Java 8中引入的 –

回答

2

getOrDefault方法是在Java中引入了8,檢查其運行時Java您的版本運行java -version使用說明。如果您使用的是低於Java 8(1.8)的版本,則升級並且您的代碼應該可以工作。