Wednesday, 15 May 2013

What's wrong with the following assignment in Java Generics -



What's wrong with the following assignment in Java Generics -

i starting java generics , next code not create sense me.

list<? extends number> lint = new arraylist<integer>(); // next throws error list<number> lint2 = lint; [extra details]

i know list<interger> != list<number> what's utilize of '?' operator then? created arraylist of integers passed list can take lists containing doubles,floats or integers. why can't assign list. can of attributed strict type safety?

i using reference: http://docs.oracle.com/javase/tutorial/java/generics/upperbounded.html

the reason simple : lint arrayslist<integer> lint.add(10) right, lint.add(2.5) wrong.

but if java compiler accepted list<number> lint2 = lint;, lint2.add(2.5) should acceptable because 2.5 number , allow set double in list of integer.

hope more clear ...

java generics

No comments:

Post a Comment