Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Наследование с дженериками / 8 сообщений из 8, страница 1 из 1
30.03.2016, 22:09
    #39204608
Psolao
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование с дженериками
Можно код конструкторов
Код: plaintext
public C(int id)
и
Код: plaintext
public В(int id)
вынести в класс предка
Код: plaintext
А
, дабы не реализовывать его в каждом наследнике?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
        class A<T>{
		public A(int id, Class<T> clazz){
		}
	};
	class B extends A<X> {
	
		public B(int id){
			super(id, X.class);
		}
	};
	
	class C extends A<Y> {
		
		public C(int id){
			super(id, Y.class);
		}
	};
			
	class X{}
	class Y{}
...
Рейтинг: 0 / 0
30.03.2016, 22:18
    #39204611
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование с дженериками
Наверное как-то так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
public abstract class AbstractParent<AC> {
    private int x;
    private AC aClass;

    public AbstractParent(int x, AC aClass) {
        this.x = x;
        this.aClass = aClass;
    }
}


и
Код: java
1.
2.
3.
4.
5.
public class A extends AbstractParent {
    public A(int x, Object aClass) {
        super(x, aClass);
    }
}


но лучше пусть гуру подойдут и подскажут)
...
Рейтинг: 0 / 0
30.03.2016, 22:20
    #39204613
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование с дженериками
т.е. вот так:
Код: java
1.
2.
3.
4.
5.
public class A extends AbstractParent<A> {
    public A(int x, A aClass) {
        super(x, aClass);
    }
}
...
Рейтинг: 0 / 0
30.03.2016, 22:47
    #39204625
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование с дженериками
нет, соврала
...
Рейтинг: 0 / 0
31.03.2016, 08:39
    #39204702
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование с дженериками
PsolaoМожно код конструкторов
Код: plaintext
public C(int id)
и
Код: plaintext
public В(int id)
вынести в класс предка
Код: plaintext
А
, дабы не реализовывать его в каждом наследнике?

Ytkmpz/
...
Рейтинг: 0 / 0
31.03.2016, 08:39
    #39204704
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование с дженериками
Alexey TominPsolaoМожно код конструкторов
Код: plaintext
public C(int id)
и
Код: plaintext
public В(int id)
вынести в класс предка
Код: plaintext
А
, дабы не реализовывать его в каждом наследнике?

Ytkmpz/
Перевожу- нельзя.
...
Рейтинг: 0 / 0
31.03.2016, 09:29
    #39204760
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование с дженериками
Psolao,

Код: java
1.
2.
3.
4.
5.
6.
class A<T>{
	public Class<T> cls;
	public A(int id){
		this.cls = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
	}
};
...
Рейтинг: 0 / 0
31.03.2016, 14:38
    #39205174
Psolao
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наследование с дженериками
0FDPsolao,

Код: java
1.
2.
3.
4.
5.
6.
class A<T>{
	public Class<T> cls;
	public A(int id){
		this.cls = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
	}
};



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


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