2012-07-18 95 views
1

出于某种原因,当我尝试使用扫描仪使用GWT,我得到以下错误:使用java.util.Scanner的使用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); 
     } 
    } 

} 

回答

7

java.util.Scanner的不是GWT JRE仿真的一部分。如果你需要什么是这里的仿真内部细节概述是链接到文档:

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

+0

简单的setter有没有任何形式的GWT替代的电脑灯,你知道吗? – 2012-07-18 18:43:32

+0

你想做什么,也许我们可以提出更好的建议 – 2012-07-18 20:11:12

+0

对不起,延迟回复。我结束了使用正则表达式和拆分将文本分割成一个字符串数组。 – 2012-07-19 17:16:00

1

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

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

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

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

不过,我有一种感觉,这实际上可能没有什么想做的事情(是吗?)

如果您需要在客户端分割字符串,我通常会重新推荐Guava的斯普利特班。它的大多数方法都是GwtCompatible,并且(和CharMatcher,Joiner一起......)在Java代码的客户端和服务器端都使用它们是非常好的。

[*]假设,即setDone和setCode是没有副作用