Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / почему для generic wild card можно использовать только один класс/интерфейс ? / 12 сообщений из 12, страница 1 из 1
08.06.2014, 13:20
    #38664603
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему для generic wild card можно использовать только один класс/интерфейс ?
почему так недоспустимо писать

Код: java
1.
List<? extends SomeClass & SomeInterface> 


а так допустимо ?
Код: java
1.
List<T extends SomeClass & SomeInterface> 



P.S.
Читал это , но что-то пазл в голове до конца не сошёлся

и в обсуждениях дженериков часто употребляется слово capture. Не совсем понимаю его смысл.
...
Рейтинг: 0 / 0
08.06.2014, 13:21
    #38664604
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему для generic wild card можно использовать только один класс/интерфейс ?
...
Рейтинг: 0 / 0
08.06.2014, 13:23
    #38664605
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему для generic wild card можно использовать только один класс/интерфейс ?
...
Рейтинг: 0 / 0
08.06.2014, 14:35
    #38664630
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему для generic wild card можно использовать только один класс/интерфейс ?
Usman,

читал, но не понял
...
Рейтинг: 0 / 0
09.06.2014, 23:35
    #38665764
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему для generic wild card можно использовать только один класс/интерфейс ?
questioner,

Может кто-нить объяснить?
...
Рейтинг: 0 / 0
10.06.2014, 09:55
    #38665947
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему для generic wild card можно использовать только один класс/интерфейс ?
questioner,

http://docs.oracle.com/javase/tutorial/java/generics/bounded.html Multiple Bounds

The preceding example illustrates the use of a type parameter with a single bound, but a type parameter can have multiple bounds:
Код: java
1.
<T extends B1 & B2 & B3>

A type variable with multiple bounds is a subtype of all the types listed in the bound. If one of the bounds is a class, it must be specified first. For example:
Код: java
1.
2.
3.
4.
5.
Class A { /* ... */ }
interface B { /* ... */ }
interface C { /* ... */ }

class D <T extends A & B & C> { /* ... */ }

If bound A is not specified first, you get a compile-time error:
Код: java
1.
class D <T extends B & A & C> { /* ... */ }  // compile-time error
...
Рейтинг: 0 / 0
10.06.2014, 09:59
    #38665956
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему для generic wild card можно использовать только один класс/интерфейс ?
Usman,

вопрос собственно почему со знаком вопроса нельзя????
...
Рейтинг: 0 / 0
10.06.2014, 10:05
    #38665960
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему для generic wild card можно использовать только один класс/интерфейс ?
questioner,

Неопределенный тип (?) НЕ может быть одновременно равен двум и более интерфейсам (типам). Как-то так. Имхо.
...
Рейтинг: 0 / 0
10.06.2014, 10:16
    #38665984
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему для generic wild card можно использовать только один класс/интерфейс ?
questioner,

Вроде можно так замутить (через generic-метод):
Код: java
1.
2.
3.
4.
5.
6.
7.
public interface I1 { }
public interface I2 { }
public interface I3 { }

public static <T extends I1 & I2 & I3> java.util.List<T> method() {
    return new java.util.ArrayList<T>();
}

см. 5 пункт
...
Рейтинг: 0 / 0
10.06.2014, 19:40
    #38666828
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему для generic wild card можно использовать только один класс/интерфейс ?
Usman,

Для T я знаю)) суть вопроса в том, что я не привить понимаю почему для T так разрешено, а для "? " запрещено!
...
Рейтинг: 0 / 0
11.06.2014, 18:53
    #38668051
chabapok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему для generic wild card можно использовать только один класс/интерфейс ?
questioner,

если у вас в списке хранятс яразнородные обьекты, тупо делайте List<Object> и не парьте мозг. Зачем делать то о чем вы написали - я так и не понял.
...
Рейтинг: 0 / 0
11.06.2014, 19:11
    #38668064
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему для generic wild card можно использовать только один класс/интерфейс ?
chabapok,

T и wildcard вроде похожие вещи, а в одном случае разрешено extends от нескольких интерфейсов, а в другом нет.

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


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