0

コードは次のとおりです。

Person aTrainee = new Trainee (firstName,lastName,streetAddress,postCode,phoneNumb,performanceAverage,trainingArea);

そしてエラーは言う

no suitable constructor found for Trainee...ectect

人は配列です

研修生は配列内の項目です (研修生、従業員、管理職の 3 つのうちの 1 つ)

括弧内の項目を削除するとエラーは発生しませんが、それがないとコードは機能しません。括弧内の項目がコードの残りの部分と 10 回以上一致することを確認しました。これを理解するために 1 時間以上費やしました。アドバイスをいただければ幸いです。

編集:これはコードです。たくさんあるので、ここが重要な部分です。

else if (userChoice.equalsIgnoreCase(toTrainee))
       {

           Scanner in = new Scanner(System.in);
           Scanner choice = new Scanner (System.in);
           System.out.println("To select a Trainee to edit, enter a value from 0 to 3: \n");
           int selection = choice.nextInt();

               if(selection <= 8)
               {
                   System.out.println("Incorrect, please enter a valid number!");
                   sc.nextLine();
                   break;
                }

            System.out.println("Please enter a first name for the Trainee \n");
            String firstName = in.nextLine();

            System.out.println("Please enter a Last name for the Trainee \n");
            String lastName = in.nextLine();

            System.out.println("Please enter a Street Address for the Trainee: \n");
            String streetAddress = in.nextLine();

            System.out.println("Please enter a Post code for the Trainee: \n");
            int postCode = in.nextInt();
            in.nextLine();

            System.out.println("Please enter a Phone Number for the Trianee: \n");
            String phoneNumb = in.nextLine();

            System.out.println("Please enter a performance average for the Trainee: \n");
            String performanceAverage = in.nextLine();

            System.out.println("Please enter a Training area for the Trainee: \n");
            String trainingArea = in.nextLine();

            Person aTrainee = new Trainee (firstName,lastName,streetAddress,postCode,phoneNumb,performanceAverage,trainingArea);
            System.out.println(aTrainee);
            myWorker.set(selection,aTrainee);

        }

見習いコンストラクター

public class Trainee extends Person
{
    private String performanceAverage, trainingArea;
    public Trainee()
    {
       super();
       performanceAverage = "";
       trainingArea = "";
    }
    public Trainee(String myFirstName, String myLastName, String myStreetAddress, int myPostCode, int myPhoneNumb, String myPerformanceAverage, String myTrainingArea)
    {
        super(myFirstName,myLastName,myStreetAddress,myPhoneNumb,myPostCode);
        performanceAverage = myPerformanceAverage;
        trainingArea = myTrainingArea;
    }

    public void setPerformanceAverage(String myPerformanceAverage)
    {
    this.performanceAverage = myPerformanceAverage;
    }

    public void setTrainingArea(String myTrainingArea)
    {
    this.trainingArea = myTrainingArea;
    }

     public String toString()
    {
        return super.toString() + ", Performance Average is " + performanceAverage + ", and Training Analysis is  " + trainingArea;
    }
}

これは、Tranee に Name ect などのいくつかの情報を与える Person です。

public class Person
{ 
       private String firstName;
       private String lastName;
       private String streetAddress;
       private int postCode;
       private int phoneNumb;

       public Person()
       {
           firstName = lastName = streetAddress = "";
           postCode = phoneNumb = 0;
       }

       public Person(String myFirstName, String myLastName, String myStreetAddress, int myPostCode, int myPhoneNumb)
       {
           firstName = myFirstName;
           lastName = myLastName;
           streetAddress = myStreetAddress;
           postCode = myPostCode;
           phoneNumb = myPhoneNumb;
        }

        public void setFirstName(String myFirstName)
        {
            this.firstName = myFirstName;
        }

        public String getFirstName()
        {
            return firstName;
        }

        public void setLastName(String myLastName)
        {
            this.lastName = myLastName;
        }

        public String getLastName()
        {
            return lastName;
        }

        public void setStreetAdress(String myStreetAddress)
        {
        this.streetAddress = myStreetAddress;
        }

        public String getStreetAdress()
        {
        return streetAddress;
        }

        public void setPostCode(int myPostCode)
        {
        this.postCode = myPostCode;
        }

        public int getPostCode()
        {
        return postCode;
        }

        public void setPhoneNumb(int myPhoneNumb)
        {
        this.phoneNumb = myPhoneNumb;
        }

        public int getPhoneNumb()
        {
        return phoneNumb;
        }

        public String toString()
        {
             return "This person's information is: " + firstName + " " + lastName + ", " + " " + streetAddress + " " + postCode + ", phone number is  " + phoneNumb;
        }
}

これが配列です(最初の行は単なるテストなので、エントリは無視してください)

import java.util.ArrayList;
public class ShopMan
{
  public static void main()
  {
     ArrayList<Person>myWorker = new ArrayList<Person>();
     Person aShopEmployee = new ShopEmployee("Yazz","Hasan","1/43", 4215, 55271095, "Timber", 010101001, 50000);
     myWorker.add(aShopEmployee);
     aShopEmployee = new ShopEmployee("","","",00,00,"",00,00);
      myWorker.add(aShopEmployee);
     aShopEmployee = new ShopEmployee("","","",00,00,"",00,00);
      myWorker.add(aShopEmployee);
     aShopEmployee = new ShopEmployee("","","",00,00,"",00,00);

     Person aManagement = new Management("","","",00,00,"",00,00,false);
     myWorker.add(aManagement);
     aManagement = new Management("","","",00,00,"",00,00,false);
     myWorker.add(aManagement);
     aManagement = new Management("","","",00,00,"",00,00,false);
     myWorker.add(aManagement);

     Person aTrainee = new Trainee("", "", "", 00, 00, "", "");
     myWorker.add(aTrainee);
     aTrainee = new Trainee("", "", "", 00, 00, "", "");
     myWorker.add(aTrainee);
     aTrainee = new Trainee("", "", "", 00, 00, "", "");
     myWorker.add(aTrainee);
     aTrainee = new Trainee("", "", "", 00, 00, "", "");
     myWorker.add(aTrainee);
     aTrainee = new Trainee("", "", "", 00, 00, "", "");
     myWorker.add(aTrainee);
     aTrainee = new Trainee("", "", "", 00, 00, "", "");
     myWorker.add(aTrainee);
     aTrainee = new Trainee("", "", "", 00, 00, "", "");
     myWorker.add(aTrainee);

     for (int i=0; i < myWorker.size(); i++)
     {
        System.out.println(myWorker.get(i));
     }

     while (true)
     {
         Menu.main(myWorker);
     }
  }
}

答えが見つかりました!

String phoneNumb = in.nextLine();

する必要があった

int phoneNumb = in.nextInt();
                in.nextLine();

Russell Zahniserとcreinig、そして他のみんなに感謝します

4

1 に答える 1

2

パラメータの型を確認してphoneNumbください。

于 2013-05-28T13:47:02.060 に答える