Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6330850

RowFilter's orFilter/andFilter have too restrictive a generic type

XMLWordPrintable

    • b60
    • x86
    • windows_xp

      RowFilter's orFilter/andFilter are defined as:

            public static <M,I> RowFilter<M,I> orFilter(
                  List<RowFilter<M, I>> filters) {

      This means you can't create a filter for something like:

      List<RowFilter<? super TableModel,Object>> filters;
      CustomFilter customFilter = new CustomFilter();
      RowFilter<Object,Object> regexFilter = RowFilter.regexFilter("blah");

      filters = new ArrayList<RowFilter<? super TableModel,Object>>(1);
      filters.add(regexFilter);
      filter.add(customFilter);
      RowFilter<? super TableModel,Object> orFilter = RowFilter.orFilter(filters);

      private static class CustomFilter extends RowFilter<TableModel,Object> {
        public boolean include(
                      Entry<? extends TableModel, ? extends Object> entry) {
          return true;
        }
      }

      orFilter/andFilter should be:

          public static <M,I> RowFilter<M,I> orFilter(
                  List<? extends RowFilter<? super M, ? super I>> filters);
          public static <M,I> RowFilter<M,I> andFilter(
                  List<? extends RowFilter<? super M, ? super I>> filters);

            svioletsunw Scott Violet (Inactive)
            svioletsunw Scott Violet (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: