Où est la différence entre test1 et test2? Pourquoi erreur de compilation dans test1?Erreur de compilation avec générique
import java.util.ArrayList;
import java.util.Collection;
class MyType {
}
class MyClass<T> {
private Collection<MyType> myTypes = new ArrayList<MyType>();
private Collection<T> myTs = new ArrayList<T>();
public Collection<MyType> getMyTypes() {
return myTypes;
}
public Collection<T> getMyTs() {
return myTs;
}
}
public class TestSimple {
public void test1() {
MyClass myClass = new MyClass();
for (MyType myType : myClass.getMyTypes()) {
}
}
public void test2() {
MyClass myClass = new MyClass();
Collection<MyType> myTypes = myClass.getMyTypes();
for (MyType myType : myTypes) {
}
}
public void test3() {
MyClass<Long> myClass = new MyClass<Long>();
for (Long myType : myClass.getMyTs()) {
}
}
}
Pourquoi utilisez-vous 'MyClass' non paramétré dans test1 et test2? –
Parce que je ne sais rien sur le type. Java permet cette utilisation. – Alex
Mais si j'ai "Collection publique getMyTypes()" J'attends collection de MyType –
Alex