I’m trying to clean up some warnings in some old Java code (in Eclipse), and I’m unsure what the proper thing to do is in this case. The block looks more or less like this:
Transferable content = getToolkit().getSystemClipboard().getContents( null );
java.util.List clipboardFileList = null;
if( content.isDataFlavorSupported( DataFlavor.javaFileListFlavor ) ) {
try {
clipboardFileList = (java.util.List)content.getTransferData(
DataFlavor.javaFileListFlavor);
}
/* Do other crap, etc. */
}
The List generates a warning as it isn’t parameterized, however, if I parameterize it with <File>, which I’m pretty sure is what it requires, it complains that it can’t convert from Object to List<File>. I could merely suppress the unchecked warning for the function, but would prefer to avoid that if there is a “good” solution. Thoughts?
I would recommend explicitly casting the result to
List<File>and suppressing the warning. According to the documentation:In such a situation where the documentation clearly defines the data type, feel free to ignore the warnings, as per Item 24 of Joshua Bloch’s Effective Java (page 116):