javaoopobject-oriented-analysis

Generic class that implements a particular interface


So lets take this example that I have a class A and class B both A and B are implementing a specific interface letters. Now I need to make a specific function in another class wherein I need to pass either A class object or B class object and similarly do some operation on these objects and return either A or B class objects. Now I can define the function using a generic type T but the catch is T must always implement interface letters. So a Object of class 1 which doesn't implement interface letters wont be allowed to pass this function.

public class A implements letters{...}
public class B implements letters{...}
public class LetterOperations{
 public T letterOp(T letter){..}
}

Here letterOp() must be accepting only those kind of generic classes T which implement interface letters.


Solution

  • Add type parameter bound when declaring generic class:

       public class LetterOperations<T extends letter> {
         public T letterOp(T letter){..}
       }
    

    Or use method with type parameter:

       public <T extends letter> T letterOp(T letter){..}