Groovy构造函数在构造函数中给出由于哈希冲突导致的编译错误

时间:2016-07-09 08:19:04

标签: groovy constructor

我正在尝试向Groovy类添加构造函数,但是添加第二个方法作为构造函数我收到编译错误..

  

由于构造函数中的哈希冲突,无法编译类

class BaseException extends RuntimeException {

private Integer status
private String message
private Long timestap
private List<ErrorMessage> errors

    BaseException(Integer status, String message, List<ErrorMessage> errorMessageList) {
        this.status = status
        this.message = message
        this.timestap = System.currentTimeMillis();
        this.errors = errorMessageList
    }

    // ---
    // adding the method below gives a compile error
    // ---
    BaseException(Integer status, String message, List<ErrorCode> errorCodeList) {
        this.status = status
        this.message = message
        this.timestap = System.currentTimeMillis();
        this.errors = []
        errorCodeList.each { error ->
            this.errors.add(new ErrorMessage(error.code, error.description))
        }
    }
    .. code emitted
}

任何提示我做错了什么?

1 个答案:

答案 0 :(得分:1)

由于擦除,一旦删除泛型,就不能有两个具有相同签名的构造函数或方法。

Java也是如此。

如果你真的需要这个,那么通常会有两个具有不同名称的静态工厂方法和一个处理这两种情况的可访问性较低的构造函数