Hibernate里get()方法的形参怎么是java.io.serializable
Java code
public class BaseDAO{
protected Object get(Class clz,java.io.serializable id){
try{
}catch(Exception e){
e.printStackTrace();
}
}
}
这个方法是通过记录id主键返回一个实体bean,但为什么id的参数类型是java.io.serializable?想不明白
------解决方案--------------------有啥不明白的。
我举个其它的例子。
森林开大会,要求是所有能飞的(Flyable)的可以参加。通知上写的类型就是 Flyable的就行。
那么麻雀可以飞,因为他实现了Flyable了。当然可以参加了
小兔子没有实现Flyable,所以不能参加
老鹰当然也可以参加
之所以用一个接口,是因为我们无法预知到底有多少能飞的东西。所以参数那里只能用接口而不是具体的某个动物。
这也是良好的设计方法。
我们的例子里面,要求所有的Serializable 的就可以。
而......
不说了
------解决方案--------------------楼主的意思是为什么不是一般的Object,非要Serializable
老紫竹有些偏题了
------解决方案--------------------谁说主键必须是数字?
------解决方案--------------------怎么可能,主键是数据库表的主键,没限制一定要什么类型吧,程序能对应上就行了
------解决方案--------------------所有实现了java.io.serializable 都可以接收