What methods should go into a java.util.Objects class in JDK 7?

David M. Lloyd david.lloyd at redhat.com
Wed Sep 16 15:29:08 UTC 2009

On 09/16/2009 10:20 AM, Joel Kamentz wrote:
> It's more for I/O, not general Object, but some methods which I almost ALWAYS use in a project are null-safe canonicalization and null-safe close methods.

Yeah I think that these would belong in an I/O package.  That said...

>     static File canonical(File f) {
>         if (f == null) return null;
>         try { return f.getCanonicalFile(); }
>         catch (IOException e) { return f.getAbsoluteFile(); }
>     }

No comment, other than to check out the NIO list archives and/or the 
current source tree which may already allow you to do this.

>     static void close(Reader s) {
>         if (s == null) return;
>         try { s.close(); }
>         catch (IOException e) {}
>     }

These would be better written as a single "close(Closeable c)".  Also, 
swallowing the exception is the wrong thing to do; at the very least it 
should be logged.

>     ... repeat for other stream types as necessary, like ZipFile, RandomAccessFile, etc. because no common inheritance

These *should* all be fixed now to implement Closeable IIRC.

>         Delete files or sub-trees, catching exceptions and instead just return success / failure.
>         Copy an InputStream to an OutputStream with supplied byte buffer (or allocate one internally).  General file (or stream or ?) copying utility methods might be useful.

Definitely in the I/O realm, ask Alan on the NIO list.  The delete thing 
might already be done :)


More information about the core-libs-dev mailing list