• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • paul wheaton
  • Ron McLeod
  • Jeanne Boyarsky
Sheriffs:
  • Paul Clapham
Saloon Keepers:
  • Tim Holloway
  • Roland Mueller
Bartenders:

Generics problem

 
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Imagine this:

class ConcreteClass extends AbstractClass

public class Main {

public void doVector(Vector<AbstractClass> vector) {
for (AbstractClass ob : vector) {
// do Something
}
}

public Main() {
}

public static void main(String[] args) {
Main main = new Main();

Vector<ConcreteClass> vector = new Vector();
vector.add(new ConcreteClass());
main.doVector(vector);
}
}

This won't compile because vector is Vector<ConcreteClass> not Vector<AbstractClass>
even though ConcreteClass is a subclass of AbstractClass

I can get past this by casting vector to a simple untyped Vector,
although the compiler b!tches about unchecked conversions.

Alternatively I could declare my vectors as Vector<AbstractClass>
but in my application I actually have multiple different Concrete classes so that doesn't help.

Is there another solution that I'm missing?
 
Ranch Hand
Posts: 2412
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Have you tried something like



?

This wouldn't allow you to add to the Vector, but you could iterate through it.
 
Dave Tong
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
That's exactly what I needed. Completely brilliant. Thanks!
 
If you look closely at this tiny ad, you will see five bicycles and a naked woman:
Clean our rivers and oceans from home
https://www.kickstarter.com/projects/paulwheaton/willow-feeders
reply
    Bookmark Topic Watch Topic
  • New Topic