2

由于某种原因,当我尝试将扫描仪与 gwt 一起使用时,出现以下错误:

No source code is available for type java.util.Scanner; did you forget to inherit a required module?

我环顾四周,似乎“没有源代码可用于 xxxx 类型”错误是由于没有 Java 类型的 Javascript 等效类型。扫描仪不能与 GWT 一起使用吗?

这是我的代码片段:

import java.util.Scanner;
...
public void submit(){
    String text = editor.getEditor().getText();
    Scanner input = new Scanner(text);
    while(input.hasNextLine()){
        String line = input.nextLine();
        if(line.contains("//")){
            cInfo.setDone(false);
            cInfo.setCode(text);
            return;
        }
        cInfo.setDone(true);
        cInfo.setCode(text);
        }
    }

}
4

2 回答 2

7

java.util.Scanner 不是 GWT JRE 仿真的一部分。如果您需要详细了解仿真内部的内容,请参阅文档链接:

https://developers.google.com/web-toolkit/doc/latest/RefJreEmulation#Package_java_util

于 2012-07-18T18:41:06.060 回答
1

您的代码(至少是您问题的当前版本中的代码)可能[*]相当于

public void submit() {
  String text = editor.getEditor().getText();

  if ("".equals(text))
    return;

  cInfo.setDone(!text.contains("//"));
  cInfo.setCode(text);
}

但是,我有一种感觉,这实际上可能不是想要做的(或者是吗?)

如果你需要在客户端拆分字符串,我通常推荐Guava中的 Splitter 类。它的大多数方法都是GwtCompatible,并且(与 CharMatcher、Joiner 一起...)在 Java 代码的客户端和服务器端都可以使用。

[*] 假设 setDone 和 setCode 是没有副作用的简单设置器

于 2012-07-18T21:02:34.213 回答