找不到合适的构造函数 - (实际和形式参数列表的长度不同)

时间:2017-08-28 15:38:58

标签: java maven

我是java的新手所以如果答案很明显,请原谅。我的任务是将java项目转换为Maven,我遇到了以下编译错误。

  

没有为EtHttpException找到合适的构造函数(java.lang.String,java.lang.String)

FWIW在多个其他类中发生同样的错误

基类

public class EtHttpException extends Exception {

private java.lang.String currentURL = null;
private java.lang.String status = null;
private java.lang.String request = null;

/**
  EtHttpException constructor comment.
*/

public EtHttpException(String status, String newCurrentURL,Exception e) {
    super(status);
    currentURL = newCurrentURL;
}

public EtHttpException(String status, String newCurrentURL, String newRequest,Exception e) {
    super(status);
    currentURL = newCurrentURL;
    request = newRequest;
}

public java.lang.String getCurrentURL() {
    return currentURL;
}

public java.lang.String getRequest() {
    return request;
}

}

此处出现错误

public class EtHttpsConnection {

private String sendRequest(String requestMessage, String currentURL)
    throws EtHttpException {

String responseMessage = null;
int size = 0;
int offset = 0;
int length = 400;
byte[] buffer = new byte[4096];

try {
    setRequest(requestMessage);

    responseMessage=connect(currentURL);

    trace(currentURL);
    trace(requestMessage);
    String postRequestMessage =
        transformMessageToPostFormat(requestMessage, currentURL);

    trace(postRequestMessage);

} catch (Exception e) {

    e.printStackTrace();
    String msg = e.toString();                  
    disconnect();
    throw new EtHttpException(msg, currentURL);
}
// return response
return responseMessage;

}

发生其他地方错误

  

没有为EtHttpException找到合适的构造函数(java.lang.String,< nulltype>)

public class NoCurrentURLException extends EtHttpException {

public NoCurrentURLException() {

    super("No current URL was retrieved from URLList", null);

}
}

我很确定有一个地方我可以做出改变以解决这些错误,有人可以提供任何见解吗?

1 个答案:

答案 0 :(得分:1)

  找不到合适的构造函数   EtHttpException(java.lang.String中,java.lang.String中)

错误消息告诉您没有EtHttpException的构造函数,它需要两个字符串。如果你看看EtHttpException,你会看到两个构造函数:一个需要两个字符串和一个异常;另一个需要三个字符串和一个例外。

您正在尝试使用两个字符串 - 没有与此签名匹配的构造函数。

要解决此问题,请将EtHttpsConnection课程中引发异常的位置更改为:

throw new EtHttpException(msg, currentURL, e);

然后更改NoCurrentURLException类的构造函数以使用类似这样的内容:

super("No current URL was retrieved from URLList", null, null);