On Wed, Dec 5, 2018 at 8:19 AM Maurizio Cimadamore < maurizio.cimadam...@oracle.com> wrote:
* Our proposed treatment for generic enums raises an additional, more > philosophical, question: what are raw types *for* and how happy are we > in seeing more of them (in the form of raw enum types)? > I have looked high and low for valid use cases for raw types (apart from interacting with legacy code), and only ever found... two. 1. As the stepping stone to make a forbidden cast: @SuppressWarnings("unchecked") // safe because runtime type is functionally covariant Iterator<Object> objects = (Iterator) strings; A common use case for this is to interact with APIs that forgot their wlidcards, but there are plenty of other cases that can't be "fixed". 2. As the argument to instanceof. Everyone does it, of course, because writing out `instanceof Map<?, ?>` serves no purpose. Thankfully, they're both harmless... and I believe (?) they were even made exempt from "rawtypes" warnings. (If not, I'd opine that they should be.) -- Kevin Bourrillion | Java Librarian | Google, Inc. | kev...@google.com