Ik heb een klasse gemaakt wat een set is die alleen objecten mag bevatten die de klasse Comparable implementeren:
In een andere klasse maak ik 2 GenericSets aan:
Nu komt mij vraag, als ik in die klasse
g1 = g2;
zet, geeft hij tijdens het compilen een error aan:
TestGeneric.java:100: incompatible types
found : GenericSet<java.lang.Boolean>
required: GenericSet<java.lang.String>
Dit is ook de bedoeling, maar als ik
g1 = GenericSet.assign(g2);
neerzet geeft hij geen error tijdens het compilen. Hoe zorg ik ervoor als ik de methode assign gebruik, dat de return waarde nog steeds van het type GenericSet <Boolean> is?
code:
1
2
3
4
5
6
7
| public class GenericSet <E extends Comparable>extends TreeSet<E>
{
public static <T extends Comparable> GenericSet assign(GenericSet <T> z)
{
return z;
} |
In een andere klasse maak ik 2 GenericSets aan:
code:
1
2
| GenericSet <String> g1 = new GenericSet <String>() ; GenericSet <Boolean> g2 = new GenericSet <Boolean>() ; |
Nu komt mij vraag, als ik in die klasse
g1 = g2;
zet, geeft hij tijdens het compilen een error aan:
TestGeneric.java:100: incompatible types
found : GenericSet<java.lang.Boolean>
required: GenericSet<java.lang.String>
Dit is ook de bedoeling, maar als ik
g1 = GenericSet.assign(g2);
neerzet geeft hij geen error tijdens het compilen. Hoe zorg ik ervoor als ik de methode assign gebruik, dat de return waarde nog steeds van het type GenericSet <Boolean> is?