我需要编写一个接口,该接口将用于至少两种不同的实现,如下例所示:
public interface AsdDAO{
public Set<_What_?> getEntities();
}
public class AsdPlayerDao implements AsdDAO{
public Set<Player> getEntities();
}
public class AsdPartnerDao implements AsdDAO{
public Set<Partner> getEntities();
}
这些类将用于检索像下一个实体的集合:
@Autowired
AsdPartnerDao dao;
public void method(){
Set<Partner> partners = dao.getEntities();
//Some other stuff
}
是否可以在public Set<?> getEntities();
这里使用通配符。我的问题其实是如何编写界面是最好的方法?
答案 0 :(得分:2)
看起来像你想要的
public interface AsdDAO<T>{
public Set<T> getEntities();
}
public class AsdPlayerDao implements AsdDAO<Player>{
public Set<Player> getEntities();
}
public class AsdPartnerDao implements AsdDAO<Player>{
public Set<Partner> getEntities();
}
也可以约束类型,例如
public interface AsdDAO<T extends SomeInterfaceYouHave>{
答案 1 :(得分:0)
如果实体没有实现公共接口:
public interface AsdDAO{
public Set<?> getEntities();
}
如果他们这样做:
public interface AsdDAO{
public Set<? extends YourInterface> getEntities();
}