簡體   English   中英

OSX 上的 Java 編譯錯誤,但 Windows 上沒有

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM