【发布时间】:2019-08-05 03:10:46
【问题描述】:
// Domain Class
public class Actor {
private int id;
private String firstName;
private String lastName;
private Date lastUpdate;
// getters and setters
}
// DAO Interface
public interface IDao<T> {
void save(T t);
}
// Concrete Class
public class ActorDao implements IDao {
@Override
public void save(Actor actor) {
// Error: The method save(Actor) of type ActorDao must override or implement a supertype method
}
}
当IDao 的参数为T 时,为什么覆盖的save() 不接受Actor?
【问题讨论】:
-
在接口名称中使用
I是违反Java 约定的。此外,(1)Date已过时;你想要Instant,并且(2)如果你可以使用Spring Data,它会自动为你的DAO接口自动生成实现。 -
看到太多 C# 得到
I哈哈。Date是java.sql.Date。 Spring Data 可以用于非 Web 应用吗? -
java.sql.Date更加过时了;请改用java.time。并且 Spring Data 可以用于在完整的 JVM(不是 Android、智能卡等)上运行的任何应用程序中。 -
接下来会调查,谢谢!就这个线程而言,一切都很好!