当前位置: 代码迷 >> J2EE >> Hibernate里get()方法的形参如何是java.io.serializable
  详细解决方案

Hibernate里get()方法的形参如何是java.io.serializable

热度:597   发布时间:2016-04-22 03:26:28.0
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 都可以接收
  相关解决方案