java generic extends 2 interfaces