Что такое гетерогенный объект в Java?
Когда я использую любую коллекцию универсального типа с Object
класс, и я храню различные объекты в этой коллекции в этой ситуации.
Можно ли сказать, что коллекция содержит гетерогенные объекты или нет?
2 ответа
Я слышал этот термин только один раз, когда гетерогенный объект ссылался на гетерогенную коллекцию, коллекцию, которая может хранить объекты разных типов.
Гетерогенная коллекция может быть Object[]
массив или List<Object>
список. Мы редко используем их (их объявления слишком общие - "коллекция всего" указывает на проблемы проектирования), но ясно, что они могут содержать экземпляры разных типов (например, Integer
а также String
).
"гомо-" означает одно и то же, "гетеро-" означает разные.
В любом случае, если один массив Java может хранить только один тип, скажем, только числа или только строки, тогда он однороден.
Если несколько типов, то неоднородны. В приведенном выше случае, поскольку коллекция имеет тип объекта и может содержать любой тип
Давайте возьмем Javascript, чтобы лучше понять это, например. массивы неоднородны, потому что я могу создать массив, содержащий [5, "hello", new Object()], а в Java это невозможно.
Я не думаю, что гетерогенные объекты - это часто используемый термин, который имеет четкое и четко определенное значение.
Таким образом, ваше определение, которое гласит: объекты разных классов неоднородны, это хорошо.
(Проблема возникает позже, когда вы предполагаете, что другие люди разделяют это же понимание, и это не обязательно верно)