2013-02-13 3 views
1

JLS, в разделе 9.6.1 (http://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html#jls-9.6.1) говорится следующее.Что такое параметризованный вызов класса

«Это ошибка времени компиляции, если тип возврата метода, объявленного в типе аннотации, не является одним из следующих: примитивный тип, String, Class, любой параметризованный вызов класса, тип перечисления (§ 8.9), тип аннотации или тип массива (§10), тип элемента которого является одним из предыдущих типов ».

Что такое «любой параметризованный вызов класса»? Любой пример?

ответ

2

Начиная с Java 5, java.lang.Class тип generic, что означает, что он может иметь параметр типа. К параметрированный вызов Class документация означает «Class<...> с любыми параметрами типа». Вы можете найти пример этого в том же документе, например. «Пример 9.6.1-2»:

interface Formatter {} 

// Designates a formatter to pretty-print the annotated class 
@interface PrettyPrinter { 
    Class<? extends Formatter> value(); 
// ^^^^^^^^^^^^^^^^^^^^^^^^^^------------ Here 
}