相关疑难解决方法(0)

Java实体 - 为什么我需要一个空的构造函数?

这可能听起来很愚蠢,但为什么我需要在我的@Entitys中定义一个空构造函数?

我看到的每个教程都说:每个实体都需要一个空的构造函数.

但Java总是给你一个默认的不可见的空构造函数(如果你不重新定义一个).

谢谢.

编辑

我认为存在语义问题.我对"需要"所理解的是写作.

含义:始终在实体中编写一个空构造函数.

例:

@Entity
public class MyEntity implements Serializable {

   @Id
   private String str;

   public MyEntity(){}

   //here getter and setter
}
Run Code Online (Sandbox Code Playgroud)

但是当你不重新定义它时,Java总是给你这个空的构造函数(用参数写另一个).

在这种情况下,编写这个空构造函数似乎没用.

java entity jpa

30
推荐指数
4
解决办法
6万
查看次数

默认构造函数不初始化类的实例成员?

我遇到一个问题,询问"关于"默认"构造函数,以下哪一项是正确的?"

和一个选项"它初始化类的实例成员." 是不正确的选择.

现在我的理解是,如果我们有一个代码,如

    Class Test {
        String name;
    }
Run Code Online (Sandbox Code Playgroud)

然后编译器创建看起来像的默认构造函数

    Class Test {
        String name;
        Test(){
            super();
            name = null;
        }
    }
Run Code Online (Sandbox Code Playgroud)

是不是默认构造函数初始化实例成员name = null?

java constructor default-constructor

15
推荐指数
1
解决办法
1万
查看次数

如何在Java中最好地解释和使用空构造函数?

我一直在自学Java.我理解定义类的范围,但仍然没有得到空构造函数用法的概念.
通常我们应该传递构造函数的参数来构建实例对象.但是,我经常看到构造函数的空参数.例如:

 class Person {
   String name;
       int age; 

 public Person();

 public Person(String name, int age){
     this.name = name;
     this.age = age;
     } 
 }
Run Code Online (Sandbox Code Playgroud)

我研究并阅读了一个使用"鱼"类来解释的例子.所以,这就是我到目前为止所理解的:在定义类时,我们首先定义一个对象的属性,然后我们创建一个构造函数,用于使用方法构建对象.空构造函数构建GENERIC对象,以及带参数的构造函数构建具有更多特定信息的对象.让我们说上面的例子,如果我使用空构造函数创建一个实例对象:

Person p1 = new Person();  
Run Code Online (Sandbox Code Playgroud)

- 它仍会创建一个对象,但没有任何属性?那么,究竟空构造函数用于什么?我在很多示例代码中看到了它.它非常有用/常见吗?

感谢您的回答!

java constructor

8
推荐指数
3
解决办法
4万
查看次数

为什么还可以使用空白构造函数?

我最近正在阅读一些Java并且遇到了一些新的东西(一个成语?)对我来说是新的:在程序中,具有多个构造函数的类也总是包含一个空白构造函数.例如:

public class Genotype {
  private boolean bits[];
  private int rating;
  private int length;
  private Random random;

  public Genotype() {              //  <= THIS is the bandit, this one right here
    random = new Random();
  }

  /* creates a Random genetoype */
  public Genotype(int length, Random r) {
    random = r;
    this.length = length;
    bits = new boolean[length];

    for(int i=0;i<length;i++) {
        bits[i] =random.nextBoolean();
    }
  }

  /* copy constructor */
  public Genotype(Genotype g,Random r) {
    random = r;
    bits = new boolean[g.length]; …
Run Code Online (Sandbox Code Playgroud)

java constructor coding-style

7
推荐指数
2
解决办法
2万
查看次数

为什么默认构造函数需要在实例化Object时在具有Parameterized Constructor的POJO文件中声明?

假设我有一个POJO类用户和一个constuctor public User(int id, String name){...}.但是当我实例化User对象时就像User u=new User()没有参数一样,Eclipse会给出错误,如构造函数User()未定义.但是当我没有参数化的构造函数时,它工作正常.有人可以解释为什么它需要定义默认构造函数?

java constructor pojo default-constructor

4
推荐指数
1
解决办法
8676
查看次数