Я программист на C#, и я привык к синтаксисам C# для инкапсуляции и других материалов. Но теперь, по некоторым причинам, я должен напишите что-нибудь с java, и я практикую java уже целый день! Я собираюсь создать фиктивный проект для себя, чтобы сделать себя более комфортно с концепциями oop для Java.Я получаю исключение nullPointerException, когда я пытаюсь добавить некоторые значения в ссылочный класс из другого класса
Что я пытаюсь сделать, так это то, что я хочу класс с именем «Employee», который имеет три свойства (поля): firstName
, lastName
и id
. И затем я хочу создать еще один класс с именем EmployeeArray
, который будет строить массив из Employee
s внутри себя и может выполнять некоторые операции над ним (по некоторым причинам, я хочу этот проект этот путь !!) Теперь я хочу, чтобы добавить некоторые значения в Employee
с в пределах EmployeeArray
class.here в своей работе до сих пор:
//this is the class for Employee
public class Employee {
private String firstName;
private String lastName;
private int id;
public void SetValues(String firstName, String lastName, int id) {
this.firstName = firstName;
this.lastName = lastName;
this.id = id;
}
//this is the EmployeeArray class
public class EmployeeArray {
private int numOfItems;
private Employee[] employee;
public EmployeeArray(int maxNumOfEmployees) {
employee = new Employee[maxNumOfEmployees];
numOfItems = 0;
}
public void InsertNewEmployee(String firstName, String lastName, int id){
try {
employee[numOfItems].SetValues(firstName, lastName, id);
numOfItems++;
}
catch (Exception e) {
System.out.println(e.toString());
}
}
//and this is the app's main method
Scanner input = new Scanner(System.in);
EmployeeArray employeeArray;
employeeArray = new EmployeeArray(input.nextInt());
String firstName;
String lastName;
int id;
firstName = input.nextLine();
lastName = input.nextLine();
id = input.nextInt();
employeeArray.InsertNewEmployee(firstName, lastName, id);
проблема я получаю NullPointerException когда приложение хочет установить значения, и это происходит в справочнике employeeArray
.I не знаю, что я пропал. Все предложения?
Вставить трассировку стека для ошибки пожалуйста. Изменить эту строку: 'System.out.println (e.toString());' to 'e.printStackTrace();' и вы можете самостоятельно отлаживать причину. – adam0404