[英]Java compile error on OSX but not on Windows
我在 OSX 上遇到了 Java 編譯錯誤的問題,但在 Windows 7 上一切正常。
在兩個平台上,我都使用 IntelliJ 和 Java 1.70 u80 SDK 和 Maven 3.3.9(來自 IntelliJ 的捆綁包)
OSX 上出現的錯誤是
不兼容的類型:迭代器不能轉換為迭代器
對於看起來像的代碼行
Iterator<Node> it = sh.extractAllHeaderElements();
while (it.hasNext())
{
...
}
任何線索為什么它適用於 Windows 機器而不適用於 Mac?
編輯:
進口是:
import java.io.*;
import java.lang.management.ManagementFactory;
import java.net.URI;
import java.util.*;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.servlet.ServletRequest;
import javax.xml.bind.Element;
import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPHeaderElement;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.handler.soap.SOAPMessageContext;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nhindirect.xd.soap.type.MetadataLevelEnum;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
問題似乎出在用sh.extractAllHeaderElements();
返回的迭代器中sh.extractAllHeaderElements();
在 mac 平台上運行時,它不是返回Iterator<Node>
而是返回某種其他類型的 Iterator。 因此,在 Iterator 接口中使用通配符將起作用。
為此,只需替換Iterator<Node> it = sh.extractAllHeaderElements();
使用Iterator<?> it = sh.extractAllHeaderElements();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.