More Readable Use Site extension Methods for java

Ali Ebrahimi ali.ebrahimi1781 at gmail.com
Mon Dec 6 20:32:24 PST 2010


Hi John,

On Mon, Dec 6, 2010 at 10:54 PM, John Nilsson <john at milsson.nu> wrote:

> On Mon, Dec 6, 2010 at 7:51 AM, Ali Ebrahimi <ali.ebrahimi1781 at gmail.com>
> wrote:
> > import static MyUtils.select extends java.util.List;
>
> How would you handle wildcard imports?
>
Not very difficult,

>
> import static MyUtils.* extends java.util.List;
>
this statement results those methods that first param of them can accepts
reference type List.

in current sample above statement is equivalent with:
import static MyUtils.select extends java.util.List;
import static MyUtils.sortby extends java.util.List;

if MyUtils had other methods as following:

class MyUtils{
      public <T> static List<T> select(List<T> list, Predicate<T> p){ ....}
      public <T> static List<T> sortby(List<T> list, Sorter<T> p){....}

      public <T> static ArrayList<T> select(ArrayList<T> list,
Predicate<T> p){....}

      public <T> static T otherMethod(T t){....}

}

in this case the above statement is equivalent with:
import static MyUtils.select extends java.util.List;  // List<T>
select(List<T> list, Predicate<T> p)
import static MyUtils.sortby extends java.util.List;  // List<T>
sortby(List<T> list, Sorter<T> p)
import static MyUtils.otherMethod extends java.util.List;  //  T
otherMethod(T t)

The third method in MyUtils does not imported.

Best Regards,

Ali Ebrahimi


More information about the lambda-dev mailing list