提问人:Pumawesome 提问时间:6/5/2021 更新时间:6/7/2021 访问量:116
使用 JSweet 转译 Java->JS,“匹配”错误
Using JSweet to Transpile Java->JS, 'matches' error
问:
我是JS的新手。我已经编写了两个大型 Java 类,我想使用 JSweet 将它们转换为 JS。第一个较小的转录没有问题。第二个,我碰壁了。它抛出此错误两次,没有其他错误:
Line 55: property 'matches' does not exist on type 'string'. Did you mean 'match'?
我班上的第 55 行如下:
private String name;
name 在类级别,稍后由对象构造函数给出一个值,我的意思是它不包含在除类之外的其他括号中。 (它恰好是第 55 行,因为我在要转译以定义依赖项的类之前添加了一些以前的框架类)
我的一个理论是以下行导致了问题:
if(pointer.content.equals(sub_table.get_name()))
所以我把它改成了这样:
if(pointer.content.compareTo(sub_table.get_name())==0)
这个想法是,这是比较字符串的两种不同方法,而 JS 中的匹配与匹配也是比较数据的不同方法,也许我正在尝试转译 JS 不喜欢的方法。但是,错误没有改变。有什么线索吗?
答:
0赞
Pumawesome
6/7/2021
#1
问题出在第 350 行:
if((words[i - 2].matches("\\d*") && words[i-1].equals("+")) && words[i].matches("\\d*"))
我把它改成了:
if((isNumeric(words[i - 2]) && words[i-1].equals("+")) && isNumeric(words[i]))
我添加了 isNumeric 作为方法:
public static boolean isNumeric(String strNum) {
if (strNum == null) {
return false;
}
try {
int i = Integer.parseInt(strNum);
} catch (NumberFormatException nfe) {
return false;
}
return true;
}
仍然不明白为什么错误显示在第 55 行。Matches 在 java 中按预期工作,所以 js 或 jsweet 不喜欢这样使用它。
评论
matches
name