[java][generic]interfaces
Форум — Development
Добрый день. У меня вопрос, допустим имеем:
public interface SomeInterface {
}
public class SomeClass implements SomeInterface{
}
import java.io.ObjectInputStream.GetField;
import java.util.Vector;
public class Main {
public static void main(String[] args) {
SomeInterface[] interfaces = getSomeClassesObjects(); // That's correct
Vector<SomeInterface> interfaces1 = getSomeClassesObjects1(); // "type mismatch: Cannot convert ... " error
Vector<SomeInterface> interfaces2 = getSomeClassesObjects2(); // "type mismatch: Cannot convert ... " error
}
private static SomeClass[] getSomeClassesObjects() {
return null;
}
private static Vector<SomeClass> getSomeClassesObjects1() {
return null;
}
private static Vector<? extends SomeInterface> getSomeClassesObjects2() {
return null;
}
}
Почему не может преобразовать из Vector<SomeClass> в Vector<SomeInterface> в то время как с обычными массивами работает и как решить эту проблему для generic-классов? Спасибо