2013-03-05 8 views
-2

Я новичок в Generics. Я хотел бы написать интерфейс SearchableFruit для многих «фруктовых» классов, таких как:Общий интерфейс Java

public interface SearchableFruit<T>{ 
    //returns a list of newer fruit object than current fruit object 
    public static List<T> searchNewerFruit(T curr); 
} 

Так что я мог бы использовать этот интерфейс для классов Apple и Orange:

public class Apple implements SearchableFruit{ 
    public static List<Apple> searchNewerFruit(Apple currentApple){ 
    //TODO get apples newers than currentApple 
    //return a list of Apples 
} 

} 

Я никогда не делал интерфейс раньше, и это не работает для меня, можете ли вы разъяснить мне, как мне написать его правильно?

Любое предложение? Спасибо!

+5

Что такое вопрос? – benzonico

+0

Возможный дубликат: http://stackoverflow.com/questions/3933156/java-generics-and-interfaces –

+1

Примечание: интерфейсы не могут иметь статические методы. – Pyranja

ответ

0

это должно быть, как это

public interface SearchableFruit<T>{ 
    public List<T> searchNewerFruit(T curr); 
} 

public class Apple implements SearchableFruit<Apple> { 
    public List<Apple> searchNewerFruit(Apple currentApple){ 
     // impl 
    } 
} 
0

Во-первых, интерфейсы не могут содержать статические методы. Во-вторых, вы пропустите тип реализации. Исправьте:

public class Apple implements SearchableFruit<Apple>{ 
    public List<Apple> searchNewerFruit(Apple currentApple){ 
    //TODO get apples newers than currentApple 
    //return a list of Apples 
} 

} 
+0

ctrl + c ctrl + v pattern ... ech ... –

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