powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / женерики + getClass()
8 сообщений из 8, страница 1 из 1
женерики + getClass()
    #37620723
Synchrophasotron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем доброго времени суток.
у меня есть такой код:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
final public class PaginationData<T extends DtoObject> extends GridPaginationData {
....
    private T dto;
...

    public void setParameters(Query query) {
        Class<? extends DtoObject> clazz = dto.getClass();
        
....
        try {
            BeanInfo returnsInfo = Introspector.getBeanInfo(clazz);
            PropertyDescriptor[] propertyDescriptors = returnsInfo.getPropertyDescriptors();
.... 
}
}


я не до конца понимаю почему этот код корректно работает.
Код: java
1.
dto.getClass()


Ведь все женерики компилятся в простые обжекты во время компиляции, поэтому мы не можем получить T.class
...
Рейтинг: 0 / 0
женерики + getClass()
    #37620726
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что напечатает этот код.
Код: java
1.
2.
Object o = new String("");
System.out.print(o.getClass());


А почему? Ведь переменная объявлена как Object?
...
Рейтинг: 0 / 0
женерики + getClass()
    #37620729
Synchrophasotron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

:) понял спасибо. Действительно это был глупый вопрос)) А ответ умный
...
Рейтинг: 0 / 0
женерики + getClass()
    #37620744
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня другой вопрос к этому коду. Откуда уверенность что dto всегда не null?
...
Рейтинг: 0 / 0
женерики + getClass()
    #37621219
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Там скорее всего в конструкторе он инициализируется, типа:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
...
        ParameterizedType genericSuperclass = (ParameterizedType) getClass()
                .getGenericSuperclass();
        try {
            dto= ((Class<T>) genericSuperclass
                .getActualTypeArguments()[0]).newInstance();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
....    
...
Рейтинг: 0 / 0
женерики + getClass()
    #37621708
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий КитТам скорее всего в конструкторе он инициализируется, типа:

Такой код работает только для случая
Код: java
1.
public class StudentPaginationData extends PaginationData<StudentDto>
...
Рейтинг: 0 / 0
женерики + getClass()
    #37621828
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczБольшой Синий КитТам скорее всего в конструкторе он инициализируется, типа:

Такой код работает только для случая
Код: java
1.
public class StudentPaginationData extends PaginationData<StudentDto>


+++
угу..сам сидел страдал как то.
...
Рейтинг: 0 / 0
женерики + getClass()
    #37622379
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Да, согласен. Прошу прощения. Не обратил внимание на сигнатуру класса в первом посте.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / женерики + getClass()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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