2014-11-27 5 views
0

Что случилось с этим определением метода?Java generics - ошибка компилятора

public static List<T extends MyObject> T find() { 

} 

Компилятор говорит:

Syntax error, insert ";" to complete MethodDeclaration 
+0

Является ли ваш класс общим? если нет, вы должны обсудить этот метод следующим образом: public public Список T find() ' – ortis

ответ

9

У вас есть два типа возврата нет.

Если вы хотите, чтобы ввести общий тип T, который был бы

public static <T extends MyObject> List<T> find() {} 
2

Правильное объявление метода будет:

public static <T extends MyObject> List<T> find() { ... } 

При создании (статические) общие методы, общий параметр (s) должно быть определено перед возвратным типом, потому что они могут использоваться в обратном типе.

Смежные вопросы