为了账号安全,请及时绑定邮箱和手机立即绑定

hql 查询 默认构造器的问题

String hql = " from Commodity ";
  Query query = session.createQuery(hql);
  List<Commodity> commodities = query.list();
  
  for (Commodity commodity : commodities) {
   System.out.println(commodity.getId() + " : " + commodity.getName());
  }

我的Commodity类中没有构造器,但可以查询。

记得学校老师当时讲java课程时说,每个类都有一个无参构造器。即使你不申明,但是Java虚拟机会自己调用。

大神们知道这是为什么吗


正在回答

2 回答

如果你的类里面没有写构造方法,那么编译器就在编译阶段给你生成一个无参数的构造方法,但是一旦你在类里面写了构造方法(无论有参无参),虚编译器就不生成无参构造方法了,而且此时无参构造方法只有你手动重写才会有,编译器不会给你创建的。

0 回复 有任何疑惑可以回复我~
#1

横空hero 提问者

非常感谢!
2017-11-24 回复 有任何疑惑可以回复我~

可以写一个类,不提供任何构造器,然后找到编译后的class文件,用反编译程序大考这个文件,应该能看到一个无参构造方法

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

hql 查询 默认构造器的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信