Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Agile forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Generic quiz

 
Bob CHOI
Ranch Hand
Posts: 127
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
My code below,


Which lines produce compilation warnings, and why? :roll:
[ December 18, 2006: Message edited by: Bob CHOI ]
 
Pinkal Patel
Ranch Hand
Posts: 57
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Will Gave Warning

Pls find Couase in Italics format
 
Sanjeev Singh
Ranch Hand
Posts: 381
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
//1 # NO PROBLEM- A typed collection of type object is declared.
//2 # NO PROBLEM- A untyped collection is declared.
//3 # PROBLEM- A typed reference is being forced to refer to a collection which is not typed and can take any element... so warning for refering a possible currupted collection.
//4 # NO PROBLEM-element of type Object is added in collection of type Object.
//5 # NO PROBLEM-no collection modification.
//6 # NO PROBLEM-no collection modification.
//7 # NO PROBLEM - Unsafe collection can refer any type of collection.
//8 # PROBLEM-There is always a warning when we use a non-typed collection to add a element.
//9 # NO PROBLEM-no collection modification.
//10 # NO PROBLEM-no collection modification.
 
Burkhard Hassel
Ranch Hand
Posts: 1274
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
more about line 4:
an object is added to an <Object> list.
Adding to a parameterized collection never produces a warning. Either it compiles (type OK) or not (type not OK).

Only reference type counts:
The variable is generic, it doesn't matter that the object (the ArrayList) is non-generic. You can safely put objects in "typeSafe". We have been already warned (that the ArrayList "typeSafe" refers to is non-generic) in line three.


Yours,
Bu.
 
Bob CHOI
Ranch Hand
Posts: 127
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Warning on unchecked conversion,

- when generic collection varaible is referred to non-generic collection instance

- when non-generic collection varaible is used to invoke generic parameterized method

"simple" enough
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic