user46277 user46277 - 2 months ago 5x
Java Question

How do I fix "The expression of type List needs unchecked conversion...'?

In the Java snippet:

SyndFeedInput fr = new SyndFeedInput();
SyndFeed sf = XmlReader(myInputStream));
List<SyndEntry> entries = sf.getEntries();

the last line generates the warning

"The expression of type
needs unchecked conversion to conform to

What's an appropriate way to fix this?


Since getEntries returns a raw List, it could hold anything.

The warning-free approach is to create a new List<SyndEntry>, then cast each element of the sf.getEntries() result to SyndEntry before adding it to your new list. Collections.checkedList does not do this checking for you—although it would have been possible to implement it to do so.

By doing your own cast up front, you're "complying with the warranty terms" of Java generics: if a ClassCastException is raised, it will be associated with a cast in the source code, not an invisible cast inserted by the compiler.