Reputation: 1435
I am new to Java and I am trying to find out a way to store information like a struct in C. Say for example I want to have a program hire employees. It would take from the user a first name, last name, and id number and would store it. The user could then view that information based off a condition (if the database had more than 1 employee for example). Can any suggest the best way for doing this?
Upvotes: 12
Views: 105399
Reputation: 7331
In Java 16 there are Records
(JDK Enhancement Proposal 395):
public record Employee(String firstName, String lastName, String id) {
}
This comes with a canonical constructor, field accessors, hashCode()
, equals()
and toString()
implementations.
Upvotes: 4
Reputation: 1
I have a big problem with structures not being supported in Java. I am writing an Android app which receives data via Bluetooth from an embedded ARM based device (written in "C"). This data when received is a packed array of bytes which contains the contents of my embedded device's EEPROM.
In "C", C++, or "C#", I can simply "cast" this stream of bytes to a structure representing the EEPROM on the embedded device and programmatically use the members of the structure simply by referring to them. In Java, I don't have this option and there's no good way to do it since Java (except for an obscure IBM version which supports packed classes) doesn't allow you to have "packed" classes where the class members are packed without headers and footers to each class member.
Upvotes: 0
Reputation: 561
I would create a public class with public fields and a default constructor, like this:
public class Employee {
public String name, last_name;
// constructor
public Employee() {
this.name = "";
this.last_name= "";
}
}
....
//when using it
Employee e = new Employee();
e.name ="Joe";
e.last_name = "Doe";
Upvotes: 2
Reputation: 30276
A struct in C just like a class in Java and much more powerful, because class in Java can contain method, and C++ does. You create a new class. For example :
class Employee {
private String name;
private int code;
// constructor
public Employee(String name, int code) {
this.name = name;
this.code = code;
}
// getter
public String getName() { return name; }
public int getCode() { return code; }
// setter
public void setName(String name) { this.name = name; }
public void setCode(int code) { this.code = code; }
}
And when you want to create multi employees, create array just like in C:
Employee[] arr = new Employee[100]; // new stands for create an array object
arr[0] = new Employee("Peter", 100); // new stands for create an employee object
arr[1] = new Employee("Mary", 90);
Upvotes: 24