1

我想在 GWT 应用程序中对 Google Gauva 集合执行搜索操作。这些在独立应用程序中正常工作。但在 GWT 中,它们会产生运行时问题。我正在展示我的 EntryPoint 类的 onModuleLoad() 示例代码。设置 guava-gwt-14.0.1.jar 和 guava-10.0.jar 的构建路径

public void onModuleLoad() {

    List<String> sList=new ArrayList<String>();
    sList.add("arun kumar");
    sList.add("ashok kumar");
    sList.add("ravi kumar");
    sList.add("kiran kumar");
    sList.add("rama");
    sList.add("ram");
    sList.add("rama krishna");
    sList.add("phani");
    sList.add("vikram");
    sList.add("veeru");
    sList.add("arjun");
    sList.add("naresh");


    //pattern matching
    Collection<String> filterdNamesKumar=Collections2.filter(sList, Predicates.containsPattern("kumar"));
    //starts with
    Collection<String> filterdNamesRam=Collections2.filter(sList, Predicates.containsPattern("^ram"));
    Collection<String> filterdNamesAr=Collections2.filter(sList, Predicates.containsPattern("^ar"));

    System.out.println(filterdNamesAr.toString());
    System.out.println(filterdNamesKumar.toString());
    System.out.println(filterdNamesRam.toString());

    Map<String,String> emps=new HashMap<String,String>();
    emps.put("emp1","01/02/2013");
    emps.put("emp2", "10/12/2013");
    emps.put("emp3","20/11/2013");
    emps.put("emp4", "25/09/2013");
    emps.put("emp5", "15/12/2013");
    emps.put("emp6", "20/08/2013");
    emps.put("emp7", "02/02/2012");

    for(String s:emps.keySet()){
        String strDate=emps.get(s);
        DateTimeFormat dateFormat=DateTimeFormat.getFormat("dd/MM/yyyy");
        Date empDate=dateFormat.parse(strDate);



            Date startDate=dateFormat.parse("01/11/2013");
            Date endDate=dateFormat.parse("31/12/2013");
            Range<Date> range=Ranges.closed(startDate, endDate);
            boolean b=range.apply(empDate);
            if(b){
                Window.alert("date found between boundaries");
            }

    }   

}

错误:

[DEBUG] [googlegauva] - Validating newly compiled units
[TRACE] [googlegauva] - Finding entry point classes
    [ERROR] [googlegauva] - Errors in 'file:/D:/arun/eclipse_Myna/GoogleGauva/src/com/arun/gauva/client/GoogleGauva.java'
        [ERROR] [googlegauva] - Line 57: The method containsPattern(String) is undefined for the type Predicates
        [ERROR] [googlegauva] - Line 59: The method containsPattern(String) is undefined for the type Predicates
        [ERROR] [googlegauva] - Line 60: The method containsPattern(String) is undefined for the type Predicates
    [ERROR] [googlegauva] - Unable to find type 'com.arun.gauva.client.GoogleGauva'
        [ERROR] [googlegauva] - Hint: Previous compiler errors may have made this type unavailable
        [ERROR] [googlegauva] - Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly
[ERROR] [googlegauva] - Failed to load module 'googlegauva' from user agent 'Mozilla/5.0 (Windows NT 6.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1' at 127.0.0.1:52248
[DEBUG] [googlegauva] - Validating newly compiled units
[TRACE] [googlegauva] - Finding entry point classes
    [ERROR] [googlegauva] - Errors in 'file:/D:/arun/eclipse_Myna/GoogleGauva/src/com/arun/gauva/client/GoogleGauva.java'
        [ERROR] [googlegauva] - Line 57: The method containsPattern(String) is undefined for the type Predicates
        [ERROR] [googlegauva] - Line 59: The method containsPattern(String) is undefined for the type Predicates
        [ERROR] [googlegauva] - Line 60: The method containsPattern(String) is undefined for the type Predicates
    [ERROR] [googlegauva] - Unable to find type 'com.arun.gauva.client.GoogleGauva'
        [ERROR] [googlegauva] - Hint: Previous compiler errors may have made this type unavailable
        [ERROR] [googlegauva] - Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly
[ERROR] [googlegauva] - Failed to load module 'googlegauva' from user agent 'Mozilla/5.0 (Windows NT 6.1; rv:5.0.1) Gecko/20100101 Firefox/5.0.1' at 127.0.0.1:52251
4

1 回答 1

4

Patterns.containsPattern带有注释,@GwtIncompatible这意味着它不在 guava-gwt 中。

顺便说一句,你应该为 guava-gwt 和 guava 使用相同的版本。

于 2013-03-20T13:39:59.213 回答