Java 中的结构体

Siddharth Swami 2023年10月12日
  1. 使用类模拟 Java 中的结构体
  2. 使用 JUnion 插件模拟 Java 中的结构体
Java 中的结构体

在编程中,结构体是用于创建包含变量、方法、不同类型的构造函数、运算符等的结构的关键字。它类似于持有不同类型数据并具有值类型的类。它创建需要较少内存的对象。

但是,Java 中不存在结构体。我们可以修改 Java 中的一些对象,将它们用作结构体。

下面讨论这些方法。

使用类模拟 Java 中的结构体

我们可以将类中的所有方法设为 public 来模拟结构。结构体和类之间的主要区别在于结构体​​默认是公共的,而类是私有的。因此,如果我们创建一个类并将其方法和变量更改为 public,它将类似于结构体。

我们在下面的例子中实现了这个逻辑。

class EmployeeExample {
  private String emp_name;
  private int emp_code;

  // constructor
  public Employee(String emp_name, int emp_code) {
    this.emp_name = emp_name;
    this.emp_code = emp_code;
  }

  // getter
  public String getName() {
    return emp_name;
  }
  public int getCode() {
    return emp_code;
  }

  public static void main(String[] args) {
    EmployeeExample[] array = new EmployeeExample[2]; // new stands for create an array object
    array[0] = new EmployeeExample("Ram", 1); // new stands for create an employee object
    array[1] = new EmployeeExample("Shyaam", 2);
    for (int i = 0; i < array.length; i++) {
      System.out.println(array[i].getName() + " " + array[i].getCode());
    }
  }
}

输出 :

Ram 1
Shyaam 2

在上面的例子中,我们已经创建了构造函数和 getName()getCode() 方法为 public。然后,代码接受员工姓名和员工代码输入,并将值分别存储在 emp_nameemp_code 中的 EmployeeExample 类中。

使用 JUnion 插件模拟 Java 中的结构体

我们还可以使用 Project JUnion 插件。在这里,我们获得了帮助我们使用@Struct 注释创建结构体的软件。我们必须从站点 github.io/junion 安装插件并将其放在 maven 依赖项中。此外,我们必须添加 jar 文件名 junion.jar,可以从同一网站下载。

@Struct 注释包含帮助我们在 Java 中创建结构的方法。

下面的例子演示了上述方法。

import theleo.jstruct.Struct;

public class Struct {
  @Struct
  public static class Emp_Name {
    public String first_Name, middle_Name, last_Name;
  }

  public static void main(String[] args) {
    Emp_Name[] array = new Emp_Name[2];
    array[0].first_Name = "Ram";
    array[0].middle_Name = "";
    array[0].last_Name = "Sharma ";
    System.out.println(
        "Name : " + array[0].first_Name + " " + array[0].middle_Name + " " + array[0].last_Name);
  }
}

输出:

Name : Ram  Sharma

在这里,我们创建了一个静态公共类 Emp_Name,它充当一个结构体并由几个方法组成。然后在主类中,我们创建了一个长度为 2 的新数组,然后使用这些方法添加数据并将它们存储在数组中。