Is there any Java compiler flag that one can pass to tell the compiler to disallow the use of raw types? That is, for any generic class, let the compiler force that the parameterized version be used, and throw a compilation error otherwise?
相关问题
- Delete Messages from a Topic in Apache Kafka
- Jackson Deserialization not calling deserialize on
- How to maintain order of key-value in DataFrame sa
- StackExchange API - Deserialize Date in JSON Respo
- Difference between Types.INTEGER and Types.NULL in
You can configure the use of raw types within Eclipse to be a warning or an error.
It's under Preferences / Java / Compiler / Errors and Warnings / Generic types / Usage of a raw type.
javac
doesn't have anything like this as far as I'm aware - even with-Xlint:all
you don't get a warning for something like:JDK7 (b38) introduces
-Xlint:rawtypes
. As mentioned above,-Xlint:unchecked
warns about unchecked conversions.Maurizio Cimadamore of the javac team wrote a weblog entry about it.
You can get it to warn you via:
-Xlint:unchecked
This will generate warning in some, but not all, cases of missing generics.
Given the warning you can then go back and fix up the code to add the generics to the declarations.
Not ideal, and if I remember right it still won't catch everything.