Yes, the compiler special cases raw types warnings for j.l.Class type
arguments and also when doing instanceof. That is, in this program:
import java.util.List;
class Test {
void test(List<String> ls) {
ls = (List)null;
boolean b = (ls instanceof List);
Class<List> cl = List.class;
}
}
There will be no raw warnings - just an unchecked warning in the fist
assignment.
The proposed plan for enums is to allow another 'special case' for raw
enum types.
Maurizio
But a raw warning will be generated for your Iterator example.
On 05/12/2018 19:51, Kevin Bourrillion wrote:
Liam reminded me,
3. the upper bound for class literals, which maybe went without
saying, but there it is. Also harmless if I am correct that doing
anything with the result of `newInstance` etc. always results in one
kind of warning or another.
Sorry, this is pointless to the real question you're asking, I just
hate saying something wrong without correcting it. :-)
On Wed, Dec 5, 2018 at 11:26 AM Kevin Bourrillion <kev...@google.com
<mailto:kev...@google.com>> wrote:
On Wed, Dec 5, 2018 at 8:19 AM Maurizio Cimadamore
<maurizio.cimadam...@oracle.com
<mailto: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 <mailto:kev...@google.com>
--
Kevin Bourrillion | Java Librarian | Google, Inc. |kev...@google.com
<mailto:kev...@google.com>