Сообщение Re[14]: Поругайте TypeScript/node.js от 27.06.2022 11:20
Изменено 27.06.2022 11:28 Pauel
Re[14]: Поругайте TypeScript/node.js
Здравствуйте, ·, Вы писали:
P>> Коллекции джавы позволяют спокойно добавить собаку в массив котов, использую всего лишь преобразование к базовому классу коллекции. Соответсвенно при итерации ты получишь ... приплызд.
·>Нет, коллекции джавы не позволяют. https://stackoverflow.com/questions/44819476/covariance-in-java-collection-cannot-be-added-to
Успокойся,
P>>Аналогичный фокус есть и в дотнете.
·>Ну значит тоже дырявое поделие микрософта.
P>>То есть, эта самая дырка есть почти что во всех мейнстримных языках, а в Си/Си++ это вообще норма жизни. И ничего, живут люди.
·>const_cast же требуется.
P>> Коллекции джавы позволяют спокойно добавить собаку в массив котов, использую всего лишь преобразование к базовому классу коллекции. Соответсвенно при итерации ты получишь ... приплызд.
·>Нет, коллекции джавы не позволяют. https://stackoverflow.com/questions/44819476/covariance-in-java-collection-cannot-be-added-to
Успокойся,
P>>Аналогичный фокус есть и в дотнете.
·>Ну значит тоже дырявое поделие микрософта.
P>>То есть, эта самая дырка есть почти что во всех мейнстримных языках, а в Си/Си++ это вообще норма жизни. И ничего, живут люди.
·>const_cast же требуется.
Re[14]: Поругайте TypeScript/node.js
Здравствуйте, ·, Вы писали:
P>> Коллекции джавы позволяют спокойно добавить собаку в массив котов, использую всего лишь преобразование к базовому классу коллекции. Соответсвенно при итерации ты получишь ... приплызд.
·>Нет, коллекции джавы не позволяют. https://stackoverflow.com/questions/44819476/covariance-in-java-collection-cannot-be-added-to
Смотри внимательно — дыра в джаве с начала времён. Ровно та же проблема, что ты показал, только другие последствия:
Скажем, если ты передашь не того наследника, то ровно как и в жээсе, узнаешь об этом только в самый последний момент.
P>>То есть, эта самая дырка есть почти что во всех мейнстримных языках, а в Си/Си++ это вообще норма жизни. И ничего, живут люди.
·>const_cast же требуется.
Совсем необязательно. Зависит от многих вещей, особенно в Си.
P>> Коллекции джавы позволяют спокойно добавить собаку в массив котов, использую всего лишь преобразование к базовому классу коллекции. Соответсвенно при итерации ты получишь ... приплызд.
·>Нет, коллекции джавы не позволяют. https://stackoverflow.com/questions/44819476/covariance-in-java-collection-cannot-be-added-to
Смотри внимательно — дыра в джаве с начала времён. Ровно та же проблема, что ты показал, только другие последствия:
import java.util.ArrayList;
class Playground {
public static void main(String[ ] args) {
ArrayList<String> languages = new ArrayList<>();
ArrayList x = languages;
languages.add("x y z");
x.add(5); // собака в массиве котов
System.out.println(languages.get(1)); // любуешься разницей, а что будет если передавать 0 и 1
}
}
Скажем, если ты передашь не того наследника, то ровно как и в жээсе, узнаешь об этом только в самый последний момент.
P>>То есть, эта самая дырка есть почти что во всех мейнстримных языках, а в Си/Си++ это вообще норма жизни. И ничего, живут люди.
·>const_cast же требуется.
Совсем необязательно. Зависит от многих вещей, особенно в Си.