LINUX.ORG.RU

История изменений

Исправление ya-betmen, (текущая версия) :

Для другого это для чего?

Не знаю, в джаве дженерики для типизации. Например

class Child{...}
class ChildA extends Child{
    ...
    void methodA(){...};
    ...
};
class Parent<T extends Child>{
    List<T> getChildren{...}
}
class ParentA extends Parent<ChildA>{...}
void doSmth(Parent<ChildA> parent){
    for (ChildA ca: parent.getChildren()){ ca.methodA() };
}
Если в жаве добавить
class ChildB extends ChildA{...};
class ParentB extends Parent<ChildB>{...}
То его можно впихнуть в doSmth, а вот в шарпе так не выйдет, потому что List<ChildB> на наследник List<ChildA>. С логической стороны, да, в жаве косяк, за то удобнее.

Исходная версия ya-betmen, :

Для другого это для чего?

Для другого это для чего?

Не знаю, в джаве дженерики для типизации. Например

class Child{...}
class ChildA extends Child{
    ...
    void methodA(){...};
    ...
};
class Parent<T extends Child>{
    List<T> getChildren{...}
}
class ParentA extends Parent<ChildA>{...}
void doSmth(Parent<ChildA> parent){
    for (ChildA ca: parent.getChildren()){ ca.methodA() };
}
Если в жаве добавить
class ChildB extends ChildA{...};
class ParentB extends Parent<ChildB>{...}
То его можно впихнуть в doSmth, а вот в шарпе так не выйдет, потому что List<ChildB> на наследник List<ChildA>. С логической стороны, да, в жаве косяк, за то удобнее.