在集合上执行模式搜索和范围搜索时使用GWT google guava 2



我想在GWT应用程序中对Google Gauva集合执行搜索操作。这些在独立应用程序中正常工作。但在GWT中,他们正在生产运行时的问题。我展示了我的示例代码的onModuleLoad()的EntryPoint类。为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

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

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

最新更新