java.lang.NoSuchMethodError: java.lang.String.isEmpty()Z
java.lang.NoSuchMethodError: java.lang.String.isEmpty()Z
我遇到错误:
java.lang.NoSuchMethodError: java.lang.String.isEmpty()Z
我电脑上安装的 java 版本是 1.8.0_91.
有趣的是,这个错误并没有发生在我的电脑上,但在其他电脑上我试图 运行 我的程序。
该错误似乎与 class 的一行有关,他通过 apache poi 4.1.1.
从 excel-sheet 查找信息
令人不安的代码行是这一行:if(!CellContent.isBlank()){
完整的 class 看起来像这样:
public class TrueExcelFind {
XSSFSheet sheet;
public TrueExcelFind() {
try{
String fileName = "C:/Temp/exceltest.xlsx";
InputStream input = new FileInputStream(fileName);
XSSFWorkbook wb = new XSSFWorkbook(input);
sheet = wb.getSheetAt(0);
} catch(FileNotFoundException ex) {
System.err.println("File not found " + ex);
} catch(IOException ex){
System.err.println("Unable to load " + ex);
}
}
private static int findRow(XSSFSheet sheet, String cellContent) {
for (Row row : sheet) {
for (Cell cell : row) {
if (cell.getCellType() == CellType.STRING) {
if (cell.getRichStringCellValue().getString().trim().equals(cellContent)) {
return row.getRowNum();
}
}
if (cell.getCellType().equals(CellType.NUMERIC)){
if (DateUtil.isCellDateFormatted(cell)) {
System.out.println(cell.getDateCellValue());
} else {
int lookup = (int) cell.getNumericCellValue();
String catcher = Integer.toString(lookup);
if(catcher.equals(cellContent)){
return row.getRowNum();
}
}
}
}
}
return 0;
}
public String getVaule(String suchobjekt, String ID){
int colnr;
int rownr;
switch (suchobjekt) {
case "Karton":
colnr = 10;
break;
case "Palette":
colnr = 11;
break;
default:
String ERROR = "ERROR, no such search-term";
return ERROR;
}
rownr = findRow(sheet, ID);
XSSFRow row = sheet.getRow(rownr);
XSSFCell cell = row.getCell(colnr);
String CellContent = ""+cell;
if(!CellContent.isBlank()){
System.out.println("Outcome: "+row.getCell(colnr));
return CellContent;
} else {
CellContent = "ERROR";
System.out.println("Outcome: ERROR");
return CellContent;
}
}
}
我的程序做了什么:
我是另一个 class,我正在尝试从文本字段读取输入并检查 class TrueExcelFind 是否可以找到匹配的结果。如果是,请打印出具体答案。
我猜这个错误可能与 poi 库有关。这些库包含在可执行文件 .jar 中。
有人知道这里出了什么问题吗?我卡在这了,不知道怎么办。
isEmpty 函数从 1.6 java 版本开始启用,可能在另一台电脑上安装了 java 5。
尝试 运行 那个电脑中的 java -version 来丢弃它。
请记住,您始终可以使用本机验证,例如将您的条件替换为旧版本中的 运行:
if(!CellContent.isBlank()){
为了
if(CellContent !=null || !"".equals(CellContent)){
我遇到错误:
java.lang.NoSuchMethodError: java.lang.String.isEmpty()Z
我电脑上安装的 java 版本是 1.8.0_91.
有趣的是,这个错误并没有发生在我的电脑上,但在其他电脑上我试图 运行 我的程序。 该错误似乎与 class 的一行有关,他通过 apache poi 4.1.1.
从 excel-sheet 查找信息令人不安的代码行是这一行:if(!CellContent.isBlank()){
完整的 class 看起来像这样:
public class TrueExcelFind {
XSSFSheet sheet;
public TrueExcelFind() {
try{
String fileName = "C:/Temp/exceltest.xlsx";
InputStream input = new FileInputStream(fileName);
XSSFWorkbook wb = new XSSFWorkbook(input);
sheet = wb.getSheetAt(0);
} catch(FileNotFoundException ex) {
System.err.println("File not found " + ex);
} catch(IOException ex){
System.err.println("Unable to load " + ex);
}
}
private static int findRow(XSSFSheet sheet, String cellContent) {
for (Row row : sheet) {
for (Cell cell : row) {
if (cell.getCellType() == CellType.STRING) {
if (cell.getRichStringCellValue().getString().trim().equals(cellContent)) {
return row.getRowNum();
}
}
if (cell.getCellType().equals(CellType.NUMERIC)){
if (DateUtil.isCellDateFormatted(cell)) {
System.out.println(cell.getDateCellValue());
} else {
int lookup = (int) cell.getNumericCellValue();
String catcher = Integer.toString(lookup);
if(catcher.equals(cellContent)){
return row.getRowNum();
}
}
}
}
}
return 0;
}
public String getVaule(String suchobjekt, String ID){
int colnr;
int rownr;
switch (suchobjekt) {
case "Karton":
colnr = 10;
break;
case "Palette":
colnr = 11;
break;
default:
String ERROR = "ERROR, no such search-term";
return ERROR;
}
rownr = findRow(sheet, ID);
XSSFRow row = sheet.getRow(rownr);
XSSFCell cell = row.getCell(colnr);
String CellContent = ""+cell;
if(!CellContent.isBlank()){
System.out.println("Outcome: "+row.getCell(colnr));
return CellContent;
} else {
CellContent = "ERROR";
System.out.println("Outcome: ERROR");
return CellContent;
}
}
}
我的程序做了什么: 我是另一个 class,我正在尝试从文本字段读取输入并检查 class TrueExcelFind 是否可以找到匹配的结果。如果是,请打印出具体答案。
我猜这个错误可能与 poi 库有关。这些库包含在可执行文件 .jar 中。
有人知道这里出了什么问题吗?我卡在这了,不知道怎么办。
isEmpty 函数从 1.6 java 版本开始启用,可能在另一台电脑上安装了 java 5。
尝试 运行 那个电脑中的 java -version 来丢弃它。
请记住,您始终可以使用本机验证,例如将您的条件替换为旧版本中的 运行:
if(!CellContent.isBlank()){
为了
if(CellContent !=null || !"".equals(CellContent)){