为什么在Entity类中添加super()?

时间:2016-01-20 06:02:38

标签: java entity

@Entity
@Table
public class Employee {

   private int eid;
   private String ename;

   public Employee(int eid, String ename) {
      super( );
      this.eid = eid;
      this.ename = ename;
   }
 }

在这个实体类构造函数中调用super()有什么需要?实际上,super()用于调用直接父构造函数。在这里,我们没有扩展任何类。那么在构造函数中调用super()需要什么?

3 个答案:

答案 0 :(得分:3)

没有必要。如果省略它,编译器将自动插入对超类的默认无参数构造函数的调用(在这种情况下为Object)。

请注意,如果您的实体确实扩展了特定的类,这也是如此。使用super(...)的唯一原因是调用非默认的超类构造函数(即需要参数的构造函数)。

答案 1 :(得分:1)

没有必要,因为你已经确定super用于调用直接父类,因为没有直接的父类,所以没有必要。

Javadoc说:

  

注意:如果构造函数没有显式调用超类   构造函数,Java编译器自动插入一个调用   超类的无参数构造函数。如果超级班没有   有一个无参数的构造函数,你会得到一个编译时错误。   对象确实有这样的构造函数,所以如果Object是唯一的   超类,没有问题。

答案 2 :(得分:0)

是的,你是对的超级用来调用直接的父类。但这里不需要

所以你可以使用以下代码:

  public Employee(int eid, String ename) {
      this.eid = eid;
      this.ename = ename;
   }