Определение класса общего типа - PullRequest
0 голосов
/ 06 января 2012

Здесь хорошо обсуждается обобщений

Но все они говорят о том, как класс может принимать переменную универсального типа.Мой вопрос скорее об определении класса универсального типа.

Класс определяется как

protected final <T> T getBeanFromSpringContext(String name, Class<T> requiredType) {
    if(springApplicationContext != null) {
        return springApplicationContext.getBean(name, requiredType);
    } else {
        return null;
    }
}

Теперь я понимаю, что тип возвращаемого значения T.Но тогда <T> до этого - это тип класса, моделируемый этим объектом Class.Почему это не <?>, поскольку я не знаю тип?

И так как тип возвращаемого значения - T.Может ли этот класс вернуть null, как указано выше?

1 Ответ

2 голосов
/ 06 января 2012

<T> до этого является объявлением о том, что метод является универсальным, и у него есть параметр типа T, то есть это определение переменной типа .

Может быть немного по-другому:

* * 1010

Это не только говорит о том, что у вас есть параметр типа, но также накладывает некоторые ограничения, "границы", на его значения.

Обновление: теперь, в части null. К сожалению, все не примитивные типы означают «этот тип или null» в Java. Так что да, вы всегда можете вернуть ноль. И вы всегда можете получить NPE.

Обязательная ссылка на часто задаваемые вопросы Анжелики Лангер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...