Member 14637431 Ответов: 2

Нет такой ошибки метода


Я пытаюсь сделать действительно простую программу с двумя конструкторами. Я все время получаю эту ошибку
Exception in thread "main" java.lang.NoSuchMethodError: Tuition.getResidency()Ljava/lang/String;
	at UnitTest.main(UnitTest.java:14)

и я никак не могу понять, в чем проблема. Вот этот код.
public class Tuition {
  private String name;
  private String studentnumber;
  private String residency;
  private String credithours;

  public Tuition(String argName, String argStudentNumber, String argResidency, String argCreditHours){
    size=argName;
    name=argStudentNumber;
    residency=argResidency;
    credithours=argCreditHours;
  }

  public Tuition(String argName, String argStudentNumber, String argCreditHours){
    size=argName;
    name=argStudentNumber;
    residency=argResidency;
    credithours="IC";
  }

    public void setName(String arg){
  		name=arg;
  	}
  	public void setStudentNumber(String arg){
  		studentnumber=arg;
  	}

    public void setResidency(String arg){
      residency=arg;
    }

  	public void setCreditHours(String arg){
  		credithours=arg;
  	}

  	public String getName(){
  		return name;
  	}

  	public String getStudentNumber(){
  		return studentnumber;
  	}

    public String getResidency(){
      return residency;
    }

  	public String getCreditHours(){
  		return credithours;
  	}



public class UnitTest{
 public static void main(String[] args) {


  Tuition s1=new Tuition("435353", "Geralt Rivia", "IC", "3");
  System.out.println("Student" + s1.getStudentNumber());
  System.out.println(s1.getName());
  System.out.println("takes " + s1.getCreditHours ());
  System.out.println("credit hours. Residency = " + s1.getResidency());
  System.out.println(", tution = $" + s1.calculateTuitionIC());
}
}


Что я уже пробовал:

ищу решения для этой ошибки. Я почти ничего не нашел.

2 Ответов

Рейтинг:
2

ishan_shah

Эта ошибка возникает, когда ни одно объявление переменной или переменная не находится за пределами области, в которой вы ссылаетесь на нее.
В вашей проблеме следующая функция обучения пропустила параметр argResidency :

public Tuition(String argName, String argStudentNumber, String argCreditHours){
    size=argName;
    name=argStudentNumber;
    residency=argResidency;
    credithours="IC";
  }

Таким образом, ваш код решения выглядит следующим образом :
public Tuition(String argName, String argStudentNumber, String argCreditHours, String argResidency){
    size=argName;
    name=argStudentNumber;
    residency=argResidency;
    credithours="IC";
  }


Рейтинг:
1

Kris Lantz

Вы отладили построчно?
Это может быть простой вопрос копирования-вставки, но вы пропускаете заключительную скобку для класса обучения. Кроме того, резидентность не будет установлена в этом методе, потому что arg не передается.

public Tuition(String argName, String argStudentNumber, String argCreditHours){
  size=argName;
  name=argStudentNumber;
  residency=argResidency;
  credithours="IC";
}