新Maven没有找到合适的方法

时间:2015-06-26 13:20:36

标签: java maven compiler-errors instanceof

我正在从Maven 2.2.1迁移到3.3.3并且出现错误似乎部分是由于奇怪的设计造成的。行发生异常:

DataSource ds = service.generatePdfDocument(dataBean.getModel(), getFormName() + "_A0024", OUTPUT_FILE_NAME, parameters);

使用该方法的第一个参数。 New Maven说:

no suitable method found for generatePdfDocument(java.lang.Object,java.lang.String,java.lang.String,java.util.Map<java.lang.String,java.lang.Object>)

有两种方法符合此描述,仅在第一个参数的类型上有所不同:

public DataSource generatePdfDocument(EkMessage pModel, String pFormName, String pOutputFileName, Map<String, Object> parameters) throws IOException, CloneNotSupportedException {
    return this.generatePdfDocument(pModel.getXml(), pFormName, pOutputFileName, parameters);
}

 public DataSource generatePdfDocument(MessageType pMessage, String pFormName, String pOutputFileName, Map<String, Object> parameters) throws IOException, CloneNotSupportedException {
    LOG.debug("Generating pdf document... ");
    ...
}

这样第一种方法就是调用第二种方法。但是,Maven不希望接受这两个中的任何一个,因为dataBean.getModel()是泛型的(dataBean扩展了DetailData):

@Getter
@Setter
public abstract class DetailData<T extends Object> extends GeneralDataBean {

private static final Logger LOG = LoggerFactory.getLogger(DetailData.class);

    private T model;
...
}

Maven 2.2.1曾经没问题,但Maven 3.3.3失败了。我想知道在不使用instanceOf()的情况下重构代码的最佳方法是什么。

0 个答案:

没有答案