OT: Java5 generics
I just stumbled above this little code monster and it costs me half an
our to find the reason. Still I don't understand it.
Can anybody explain it, please?
Code
-
import java.util.List;
public class TestType
{
public interface Generic
{
public List getStrings();
}
public void iterate(Generic gen)
{
for(String o : gen.getStrings()) // javac error. IDEA suggests
'Object'
{
}
}
public void iterate(Generic]]> gen)
{
for(String o : gen.getStrings())
{
}
}
}
请先登录再写评论。
This is confusing but apparently defined by the JLS:
"the result of the method call on raw qualifier is itself made raw according to JLS"
http://www.jetbrains.net/jira/browse/IDEA-6254#action_44214
Sascha
I already thought this as javac produces the same warning.
But do you know why?
BTW: a nice FAQ is
http://www.langer.camelot.de/GenericsFAQ/FAQSections/TechnicalDetails.html
Sascha Weinreuter schrieb:
AFAIK, this decision was made to force clients to use generic types ubiquitiously. The general policy, though sometimes broken, is to disallow "rare" i.e. mixed generic and raw types.
Eugene.
Thanks for the answer.
Eugene Vigdorchik schrieb: