gpt4 book ai didi

java - 确保字段从构造函数中初始化

转载 作者:行者123 更新时间:2023-11-29 04:31:10 26 4
gpt4 key购买 nike

编辑:很抱歉我之前的问题,final 关键字会让您感到困惑,这是不合适的。也为我糟糕的英语感到抱歉。

-----问题------

假设我有一个没有任何构造函数的模型类,因为我需要在许多不同的逻辑中对其进行初始化。 但是我有一个notnull关键字。

public class Model {
public notnull String name;
public notnull String address;
public notnull int age;
}

我需要在不同的地方使用它,但要不断检查是否所有 notnull 字段都在编译时初始化

Model m = new Model();
m.name = "Hello";
m.age = 15;
// syntax error, you should set Model.address

或者

Model m1 = new Model();
m1.address = "World";
m1.age = 20;
// syntax error, you should set Model.name

我如何在 Java 中实现它?谢谢。

最佳答案

assume I have a model class without any constractor

这是不可能的。每个类都有一个构造函数。如果你不定义一个,你最终会得到默认的构造函数。在你的情况下:

public Model() {
super();
}

checking if all final field were initialized

首先final字段必须要初始化,否则编译器编译不通过。因此,您必须必须初始化 final 字段:

  • 在构造函数中
  • 声明final字段时

构造函数初始化

public final String name;
public final int age;

public Model() {
this.name = "Hello";
this.age = 13;
}

声明初始化

public final String name = "Hello";
public final int age = 13;

public Model() {
super();
}

关于java - 确保字段从构造函数中初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43751984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com