Re: abstract classes and generic types
horos11@gmail.com wrote:
BTW - with the below I did find a workaround. If I say:
private<K> void _setHelper(Set<K> parm, Integer key)
{
parm.add((K) key);
}
ie, ie explicitly cast it, this works. But it also tells me that I'm
using unsafe operations.
This should not be unsafe - there's got to be a better solution than
this out there. Else are generics inherently unsafe?
No, they're safe, just the way you are using them isn't.
First, I want to point out that if you follow Giovanni's advice, the end
user never sees the generic declaration.
class AA<T> {}
class BB extends AA<Integer> {}
The user just uses BB as a normal class:
BB bb = new BB();
So I don't see why you want to get rid of generics. However, if you do,
then I think something like this will work:
class AA {}
class BB {} extends AA {
Set<Integer> example;
BB() {
example = newHashSet<Integer>();
example.add( new Integer() );
System.out.println( example );
}
}
No need for the helper method, but in this case you do need to declare
the Set<> yourself (which you were basically doing anyway when you
called "new").