March 2011 archive

Modern Java

While it’s something I’ve been intending to do for quite a while now, I’ve finally managed to actually start using the Guava Libraries. This is a superset project which includes the Google Collections libraries, which are a huge improvement over the traditional J2SE Collections API.

It allows for very quick construction of collections objects: e.g.

final List empty = Lists.newArrayList();
final List populated = Lists.newArrayList("a", "b", "c");
final Map<Integer,MyThing> myMap = ImmutableMap.of(1, object1, 2, object2, 3, object3);

How about functions on lists?

final List spamList = Lists.transform(customers, new Function<Customer,EmailAddress>() {
    public EmailAddress apply(final Customer customer) {
         return customer.getEmail();
    });

There is also a whole lot of other good stuff included, for I/O, Primitives utilities, String manipulation, Networking and concurrency.

Here is a link to some good resources.

Also, I just wanted to link to this article on JSR-310, which is the API that has arisen out of the very excellent Joda Date/Time library, which I endorse and use very heavily.