powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как работает bridge метод в covariant return type ?
14 сообщений из 14, страница 1 из 1
Как работает bridge метод в covariant return type ?
    #38669654
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
возник вопрос.

Допустим есть у нас такой вот класс.

Код: java
1.
2.
3.
4.
5.
public class MyComparator implements Comparator<Integer> {
   public int compare(Integer a, Integer b) {
      //
   }
}



говорят, что компилятор добавляет bridge метод и получается следующее:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class MyComparator implements Comparator<Integer> {
   public int compare(Integer a, Integer b) {
      //
   }

   //THIS is a "bridge method"
   public int compare(Object a, Object b) {
      return compare((Integer)a, (Integer)b);
   }
}



говорится, что одна из причин такого это чтобы работало так:

Код: java
1.
2.
3.
4.
5.
Object a = 5;
Object b = 6;

Comparator rawComp = new MyComparator();
int comp = rawComp.compare(a, b);



ну то есть для сырого типа добавляется явный каст.

Это всё была предыстория.

Вопрос мой вот в чем: говорят, что для covariant return type тоже используются bridge методы.

Я что-то не могу придумать аналогию со своим примером для генериков. Проясните, пожалуйста.
...
Рейтинг: 0 / 0
Как работает bridge метод в covariant return type ?
    #38669661
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90говорят, что компилятор добавляет bridge метод и получается следующее:
говорится, что одна из причин такого это чтобы работало так:
Ходят слухи по всему офису, а декомпилятора под рукой нет?

redwhite90Вопрос мой вот в чем: говорят, что для covariant return type тоже используются bridge методы.
Я что-то не могу придумать аналогию со своим примером для генериков. Проясните, пожалуйста.
Что-то я вопроса в упор не вижу.
...
Рейтинг: 0 / 0
Как работает bridge метод в covariant return type ?
    #38669666
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

декомпилятора под рукой нет)) Даже IDE сейчас под рукой нет) выдалось несколько часов ожидания просто. Компилирую онлайн компайлером.

Вопрос в том зачем нужен bridge метод для covariant return type.
...
Рейтинг: 0 / 0
Как работает bridge метод в covariant return type ?
    #38669683
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чтобы соблюсти правила override - инга ?
...
Рейтинг: 0 / 0
Как работает bridge метод в covariant return type ?
    #38669700
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как работает bridge метод в covariant return type ?
    #38669701
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Собственно по прочтению этой статьи и возник вопрос.
...
Рейтинг: 0 / 0
Как работает bridge метод в covariant return type ?
    #38669719
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

когда начинаются примеры с ассемблерным кодом начинаешь понимать, что ничего непонятно.
...
Рейтинг: 0 / 0
Как работает bridge метод в covariant return type ?
    #38670059
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Собственно по прочтению этой статьи и возник вопрос.
Я первые несколько из гугла пролистал. Эта самая доступная, ИМХО. Вкратце, дело в erasure, генериках и в совместимости байт-кода.
...
Рейтинг: 0 / 0
Как работает bridge метод в covariant return type ?
    #38670846
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

а кстати интересно. Ведь байткод наверное не меняют с каждой версией джавы?
...
Рейтинг: 0 / 0
Как работает bridge метод в covariant return type ?
    #38670862
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90а кстати интересно. Ведь байткод наверное не меняют с каждой версией джавы?С каждой.
Чтобы не играть в русскую рулетку времени исполнения на "старых" JVM.
...
Рейтинг: 0 / 0
Как работает bridge метод в covariant return type ?
    #38670903
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90а кстати интересно. Ведь байткод наверное не меняют с каждой версией джавы?
меняют, но с обратной совместимостью.
...
Рейтинг: 0 / 0
Как работает bridge метод в covariant return type ?
    #38671428
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Blazkowicz но с обратной совместимостью.
Если я возьму старые класс файлы, которые были скомпилены java 1.4 они будут у меня работать без перекомпилирования на 1.7 ?
...
Рейтинг: 0 / 0
Как работает bridge метод в covariant return type ?
    #38671433
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Если я возьму старые класс файлы, которые были скомпилены java 1.4 они будут у меня работать без перекомпилирования на 1.7 ?
В подавляющем большинстве случаев - да. Для каждой мажорной версии есть что-то типа migration guide, который подробно описывает несовместимости в новой версии. Их всегда мало. И зачастую они ограничиваются API.
...
Рейтинг: 0 / 0
Как работает bridge метод в covariant return type ?
    #38671436
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apache Commons всего несколько лет назад перстали поддерживать Java 1.3 совместимость.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как работает bridge метод в covariant return type ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]