2017-10-05 7 views
-1

私はどのように配列リストにユーザー入力を伴うオブジェクトを追加できるのか知りたい。私はcreateEmployee()と呼ばれる方法を書いたが、リストでそれを行う方法を知りたい。だから私はemployees.add(new Employee())で試してみましたが、私は自分の入力を書かなければなりません。しかし、私はユーザーが自分の入力を書いて欲しい。私はこのようなものが欲しい:employees.add(new Employee(identity, empname, empsalary))しかし、それは動作しません。だから私は自分の入力でそれを追加することができ、メソッドcreateEmployee()は静的でなくてもいいですか? 私は次のことを試してみました:Java:リストにオブジェクトを追加するにはどうすればよいですか?

public class Main extends ReusaxCorp { 

    public Main(String ID, String name, double grosssalary) { 
     super(ID, name, grosssalary); 
    } 

    public static void main(String[] args){ 
     createEmployee(); 
     ArrayList<Employee> employees = new ArrayList<Employee>(); 

     employees.add(new Employee()); 
    } 

    public static Employee createEmployee(){ 
     Scanner input = new Scanner (System.in); 
     System.out.print("Please enter the ID of the employee: "); 
     String identity = input.nextLine(); 
     System.out.print("Please enter the name of the employee: "); 
     String empname = input.nextLine(); 
     System.out.print("Please enter the gross salary of the employee: "); 
     double empsalary = input.nextDouble(); 

     Employee Employee = new Employee(identity, empname, empsalary); 
     return Employee; 
    } 
} 
+2

何あなたの質問ですか?あなたはどんな問題に直面していますか? –

+1

ユーザーがデータを入力してリストに保存されるテキストボックスを持つフォームのようにしたいですか? – FrankK

+0

メソッドを呼び出すと、そのメソッドの結果は無視されます: 'createEmployee();' – David

答えて

1
public class Main extends ReusaxCorp { 

public Main(String ID, String name, double grosssalary) { 
    super(ID, name, grosssalary); 
} 

public static void main(String[] args){ 

    ArrayList<Employee> employees = new ArrayList<Employee>(); 

    Employee e = createEmployee(); 
    employees.add(e); 
} 

    public static Employee createEmployee(){ 
     Scanner input = new Scanner (System.in); 
     System.out.print("Please enter the ID of the employee: "); 
     String identity = input.nextLine(); 
     System.out.print("Please enter the name of the employee: "); 
     String empname = input.nextLine(); 
     System.out.print("Please enter the gross salary of the employee: "); 
     double empsalary = input.nextDouble(); 

     Employee Employee = new Employee(identity, empname, empsalary); 
     return Employee; 
    } 
} 
+0

ありがとう、しかし、私は静的メソッドcreateEmployeeなしでそれを行うことができますか? – JavaTeachMe2018

+1

メソッド 'non static'を使うには、' Main m = new Main(...);のようにMainクラスのインスタンスを作成する必要があります。 m.createEmployee() ' –

1

あなたが直接コンストラクタを使用することができ、メインメソッドではそのような何かを(あなたは従業員のメソッドを作成使用したいいけない言及した)

java.util.Scanner scanner=new java.util.Scanner(System.in); 
boolean addingEmployee=true; 
while(addingEmployee) 
{ 
System.out.println("Please enter the employee info ID,NAME,SALARY respectively "); 
employees.add(new Employee(scanner.next(),scanner.next(),scanner.nextDouble())); 
System.out.println("Employee has been added"); 
System.out.println("do you want to add new employee : Y,N"); 
if(scanner.next().charAt(0)=='N') {addingEmployee=false;} 
} 
関連する問題