Java构造函数替换的选择是不明确的

时间:2015-03-09 14:54:49

标签: javascript rhino

我有基于RhinoScript框架的javascript代码:

function cleaner(tracker) {             
    var nRegex = new RegExp(reggo); 
    var regexMatch = tracker.match(nRegex);

    if (regexMatch == null || regexMatch == "" || regexMatch.length <= 0) {
        return tracker; 
    }

    tracker = tracker.replace(nRegex, "");      
    return tracker;     
}

但是我得到了它的例外:

  

异常:InternalError:Java构造函数替换的选择   匹配JavaScript参数类型(函数,字符串)是不明确的;   候选构造者是:       class java.lang.String replace(java.lang.CharSequence,java.lang.CharSequence)       class java.lang.String replace(char,char)(#114)

我尝试了一些但没有按预期工作。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在这种情况下看起来像“跟踪器”是一个Java对象,但你希望它是一个JS字符串。您需要调试其他代码以找出它的设置。

如果行为是故意的,并且您确实想要选择一种Java方法或另一种方法,则可以通过更改来实现:

tracker = tracker.replace(nRegex, "");

要:

tracker = tracker['replace(char,char)'](nRegex, "");
// ...or...
tracker = tracker['replace(java.lang.CharSequence,java.lang.CharSequence)'](nRegex, "");

但是,当然,在这种情况下,nRegex可能不是char或CharSequence。