首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JSweet传输Java->JS,'matches‘错误

使用JSweet传输Java->JS,'matches‘错误
EN

Stack Overflow用户
提问于 2021-06-05 01:00:01
回答 1查看 19关注 0票数 0

我是JS的新手。我已经编写了两个大型Java类,我希望使用JSweet将它们转换为JS。第一个较小的版本没有问题。在第二个问题上,我遇到了困难。它抛出这个错误两次,并且没有其他错误:

代码语言:javascript
复制
Line 55: property 'matches' does not exist on type 'string'. Did you mean 'match'?

我的类中的55行代码如下:

代码语言:javascript
复制
private String name;

name位于类级别,稍后由对象构造函数给出一个值,我的意思是,除了类之外,它不包含在其他括号中。(它恰好是第55行,因为我之前添加了一些骨架类,并将其添加到正在转换以定义依赖项的类之前)

我的一个理论是下面这行代码导致了问题:

代码语言:javascript
复制
if(pointer.content.equals(sub_table.get_name()))

所以我把它改成这样:

代码语言:javascript
复制
if(pointer.content.compareTo(sub_table.get_name())==0)

这个想法是,这是两种不同的比较字符串的方法,而在JS中,匹配和匹配也是不同的比较数据的方法,也许我试图转换一个JS不喜欢的方法。但是,错误并没有改变。有什么线索吗?

EN

回答 1

Stack Overflow用户

发布于 2021-06-07 02:17:35

问题出在第350行:

代码语言:javascript
复制
if((words[i - 2].matches("\\d*") && words[i-1].equals("+")) && words[i].matches("\\d*"))

我将其更改为:

代码语言:javascript
复制
if((isNumeric(words[i - 2]) && words[i-1].equals("+")) && isNumeric(words[i]))

我添加了isNumeric作为一种方法:

代码语言:javascript
复制
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就是不喜欢这样使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67841266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档