OSX上的Java编译错误,但在Windows上没有

时间:2017-11-28 19:21:50

标签: java macos maven-3

我在OSX上遇到Java编译错误的问题,但在Windows 7上都可以正常工作。

在这两个平台上我都使用IntelliJ和Java 1.70 u80 SDK和Maven 3.3.9(来自IntelliJ的捆绑包)

OSX上出现的错误是

  

不兼容的类型:Iterator无法转换为Iterator

表示

的代码行
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;

1 个答案:

答案 0 :(得分:1)

问题似乎出现在使用sh.extractAllHeaderElements();返回的迭代器中,而不是返回Iterator<Node>,它在mac平台上运行时返回其他类型的迭代器。因此,使用带有Iterator接口的通配符将起作用。

要执行此操作,只需将Iterator<Node> it = sh.extractAllHeaderElements();替换为Iterator<?> it = sh.extractAllHeaderElements();

即可