Hibernate里get()方法的形参怎么是java.io.serializable

liujianliang 2008-09-01 10:45:06

public class BaseDAO{
protected Object get(Class clz,java.io.serializable id){
try{
}catch(Exception e){
e.printStackTrace();
}
}
}

这个方法是通过记录id主键返回一个实体bean,但为什么id的参数类型是java.io.serializable?想不明白
...全文
302 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
heting1024 2008-09-03
  • 打赏
  • 举报
回复
所有实现了java.io.serializable 都可以接收
fosjos 2008-09-03
  • 打赏
  • 举报
回复
怎么可能,主键是数据库表的主键,没限制一定要什么类型吧,程序能对应上就行了
liujianliang 2008-09-03
  • 打赏
  • 举报
回复
字符也行,但是这个字符也得是可转数字的字符把?
老紫竹 2008-09-03
  • 打赏
  • 举报
回复
谁说主键必须是数字?
liujianliang 2008-09-03
  • 打赏
  • 举报
回复
老紫竹的意思是所有实现了序列化的类都可以吗?那传一个字符串可以吗?这个方法是根据数字id返回实体哦,就是这里想不明白……
fosjos 2008-09-02
  • 打赏
  • 举报
回复
楼主的意思是为什么不是一般的Object,非要Serializable

老紫竹有些偏题了
老紫竹 2008-09-02
  • 打赏
  • 举报
回复
有啥不明白的。
我举个其它的例子。
森林开大会,要求是所有能飞的(Flyable)的可以参加。通知上写的类型就是 Flyable的就行。
那么麻雀可以飞,因为他实现了Flyable了。当然可以参加了
小兔子没有实现Flyable,所以不能参加
老鹰当然也可以参加

之所以用一个接口,是因为我们无法预知到底有多少能飞的东西。所以参数那里只能用接口而不是具体的某个动物。
这也是良好的设计方法。

我们的例子里面,要求所有的Serializable 的就可以。
而......
不说了
liujianliang 2008-09-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 java2000_net 的回复:]
代表任何一个可以被序列化的主键。
常用的Integer 和 Long 都实现了 Serializable
[/Quote]
还是不明白^^
bachelorhero 2008-09-02
  • 打赏
  • 举报
回复
学习
老紫竹 2008-09-01
  • 打赏
  • 举报
回复
public final class Long extends Number implements Comparable<Long> {

public abstract class Number implements java.io.Serializable {


老紫竹 2008-09-01
  • 打赏
  • 举报
回复
代表任何一个可以被序列化的主键。
常用的Integer 和 Long 都实现了 Serializable

67,542

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧