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虛擬機會自己調用。
大神們知道這是為什么嗎
2017-11-22
如果你的類里面沒有寫構造方法,那么編譯器就在編譯階段給你生成一個無參數(shù)的構造方法,但是一旦你在類里面寫了構造方法(無論有參無參),虛編譯器就不生成無參構造方法了,而且此時無參構造方法只有你手動重寫才會有,編譯器不會給你創(chuàng)建的。
2017-11-22
可以寫一個類,不提供任何構造器,然后找到編譯后的class文件,用反編譯程序大考這個文件,應該能看到一個無參構造方法