Почему тип int конвертируется в Integer? - PullRequest
1 голос
/ 28 мая 2019

Я столкнулся с проблемой, которую не понимаю. Я все еще использую тип int, но код сбой, потому что int конвертируется в Integer.

Можете ли вы объяснить мне, в чем проблема? Спасибо.

Код

Caller

int excelIndex = 2
String number = CustomKeywords.'getInfo'('test', 'test', 'test', excelIndex)

* 1018 вызываемая сторона *

@Keyword
public String getInfo(String dataTest, String dataSheet, String columnName, int excelIndex) {
    String cellContent = getValueToExcel(dataTest, dataSheet, columnName, excelIndex)
    ...
    return cellContent
}

@Keyword
def getValueFromExcel(String testDataFile, String sheet, String columnName, int rowNumber) {
    ExcelData data = initialiseDataDriven(testDataFile, sheet)
    return data.getValue(columnName, rowNumber)
}

Error

number = CustomKeywords.getInfo("test", "test", "test", excelIndex) FAILED.

Reason:
org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No signature of method: getValueFromExcel is applicable for argument types: (java.lang.String, java.lang.String, java.lang.String, java.lang.Integer) values: [test, test, test, 2]
Possible solutions: getValueFromExcel(java.lang.String, java.lang.String, java.lang.String, int)

1 Ответ

5 голосов
/ 28 мая 2019

Вы вызываете метод-член getInfo в статическом стиле

Либо сделайте getInfo статическим:

public static String getInfo(String dataTest, String dataSheet, String columnName, int excelIndex) {

, либо создайте экземпляр CustomKeywords, и вызовитеgetInfo на что:

int excelIndex = 2
def keywords = new CustomKeywords()
String number = keywords.getInfo('test', 'test', 'test', excelIndex)
...