【问题标题】:google guava with GWT when performing pattern search and range search on collections2在集合上执行模式搜索和范围搜索时使用 GWT 的 google guava2
【发布时间】:2013-03-20 11:52:34
【问题描述】:

我想在 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

【问题讨论】:

    标签: java gwt collections guava


    【解决方案1】:

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

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

    【讨论】:

    • 它是@GwtIncompatible,因为GWT 不支持java.util.regex
    猜你喜欢
    • 1970-01-01
    • 2015-12-01
    • 2020-10-11
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 2019-03-08
    相关资源
    最近更新 更多