Проблем с Java ArrayList - java

Вярно ли е да се каже, че генеричните продукти на Java са по-късно обвързващи? Типът ArrayList е игнориран до времето на изпълнение? Защо е така ? Благодаря ти.

Отговори:

8 за отговор № 1

Вярно ли е да се каже, че генеричните продукти на Java са по-късно обвързващи?

Не.

Типът ArrayList е игнориран до времето на изпълнение?

Не.

Защо е така?

Това не е така.


7 за отговор № 2

Типът ArrayList е игнориран до времето на изпълнение?

това е по-скоро обратното.

Java Generics се отчитат при компилиране. По време на изпълнение има изтриване.

  • Вижте повече подробности в тази глава в онлайн настойнически за Java: Въведете изтриване Msgstr "Когато генеричен тип е инстанция,компилаторът превежда тези типове чрез техника, наречена изтриване на тип - процес, при който компилаторът премахва цялата информация, свързана с параметрите на типа и аргументите тип в рамките на клас или метод .... "

3 за отговор № 3

Генериците и късните връзки нямат нищо общо помежду си.

Типът ArrayList не се игнорира по време на изпълнение. Неговият общ тип параметър често се пренебрегва чрез изтриване на тип. Това се прави за обратна съвместимост.


1 за отговор № 4

Няма генерални продукти за Java, които не са късно обвързващи. Но да цитирам официалната документация от Java тук.

За да внедрите генерични продукти, Java компилаторът се прилагаизтрийте тип: Заменете всички типове параметри в общи типове с техните граници или Обект, ако параметрите на типа са неограничени. Произведеният байткод, следователно, съдържа само обикновени класове, интерфейси и методи.