«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Можем ли мы создать общие массивы в Java, которые продляются сопоставимыми?

Можем ли мы создать общие массивы в Java, которые продляются сопоставимыми?

Опубликовано в 2025-03-09
Просматривать:847

]  Can We Create Generic Arrays in Java That Extend Comparable?

]

Generic Arrays в Java: Изучение ковариации и стира поведение.

Вопрос

Можем ли мы создать массив Generics, где общий тип расширяется сопоставимо? Попытки поднять массив объектов в общий массив, который расширяет сопоставимые проблемы с лица, поднимая следующий вопрос: есть ли обходной путь?

ответить

Generics и Arrys: Arsally Speability

Arrays: covariarit, то есть типы их элементов сохраняют информацию своего типа при выполнении. Extend конкретный класс невозможна.

array.newinstance (): a Workaround

  • одно потенциальное решение - использовать метод Array.newinStance ():
  • private Complailable [] hophtable; ... hashtable = (comparable []) array.newinstance (complable.class, tablesize);
  • этот подход позволяет вам создавать массив супертипе общего типа (сравнимый в этом случае), но важно отметить, что эта массив не по желаемому общему типу. Generics? Erasure.
переносимость и обслуживание:

различные виртуальные машины Java (JVMS) могут по -разному обрабатывать тип, что делает поведение менее портативным и трудным для поддержания. Предоставляет эффективный и безопасный способ управления коллекциями общих объектов. Аррейлисты предлагают гибкость дженериков и избегают потенциальных ловушек, связанных с массивами и дженериками.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3