использование переменных цикла с переменными объекта - PullRequest
0 голосов
/ 27 октября 2018

Это то, что я получил

Конструктор:

public class Assignment08_ {
  String name;
  String abrv;
  int atomicNumber;
  double atomicMass;
  int group;
  int period;

   public Assignment08_(String name, String abrv, int atomicNumber, double 
   atomicMass, int group, int period) {
     this.name = name;
     this.abrv = abrv;
     this.atomicNumber = atomicNumber;
     this.atomicMass = atomicMass;
     this.group = group;
     this.period = period;
   }
}

И Класс:

import java.io.File;
import java.util.Scanner;

public class Assignment08 {

  public static void main(String[] args) throws Exception {

    Assignment08_[] elementArr = new Assignment08_[119];
    reader(elementArr);
    for(int i = 0; i < args.length; i++) {
        action(elementArr, args[i]);
    }
  }

  public static void reader(Assignment08_[] elements) throws Exception {
    Scanner data = new Scanner(new File("/srv/datasets/elements"));
    while (data.hasNext()) {
      int atomicNumber = data.nextInt();
      String abrv = data.next();
      String name = data.next();
      double atomicMass = data.nextDouble();
      int period = data.nextInt();
      int group = data.nextInt();
      elements[atomicNumber] = new Assignment08_(name, abrv, atomicNumber, 
atomicMass, group, period);
    }
    data.close();
  }

  public static void action(Assignment08_[] element, String str) {
    // for testing
    System.out.printf("%s%n", element[4].abrv);
    for (int i = 0; i < 119; i++) {
      if (str.compareTo(element[i].abrv) == 0)
        System.out.println(element[i].name);
    }
  }
}

я ввод "java Assignment08_ H" (который равен элементу [0] .abrv)

я получаю вывод:

"

Be

Исключение в потоке "main" java.lang.NullPointerException

    at Assignment08.action(Assignment08.java:33)\

    at Assignment08.main(Assignment08.java:11)

"

Be = элемент [4] .abrv

и его странно, потому что если бы я убрал его для оператора и оставил только вложенный оператор if и изменил бы i на Number (например, 0), он напечатает имя и будет работать правильно (если я введу H, что равно element [0] .abrv), оооочень я не знаю, что здесь происходит, любая помощь будет отличной, спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...