2017-11-13 13 views
-3

私はまだJavaを学んでいますが、この現在の問題については助けていただきたいと思います:しかし、この静的メソッドをmain()メソッドから呼び出そうとしています。私が試したすべてがエラーメッセージを出します。助けてくれてありがとう。Java - このメソッドをJavaのmain()メソッドから呼び出すには

これは私のコードです:

public class Statistics { 

    static double avgFor(List<Integer> list) { 

     list.add(10); 
     list.add(20); 
     list.add(30); 
     list.add(40); 
     list.add(50); 
     list.add(60); 

     int max = list.get(0); 

     for (int i : list) { 
      max = max < i ? max : i; 
     } 

     return max; 



    } 

    public static void main(String[] args) { 

     avgFor(); 

    } 

} 
+0

あなたはエラーメッセージを読んでする必要があります。何が間違っているかを教えてくれます。 –

+0

メソッドがdoubleと表示されたときにintを返す – bmarkham

+1

エラーを貼り付けるときに便利です – Averroes

答えて

5

はmainメソッドへのリストの作成と人口を移動し、パラメータの引数を渡すためにそれをあなたがしている呼んでそれを渡したときにあなたの方法はとてもパラメータがあります。

public static void main(String[] args) { 
    List<Integer> list = new ArrayList<>(); // create the list 
    list.add(10); // populate it 
    list.add(20); 
    list.add(30); 
    list.add(40); 
    list.add(50); 
    list.add(60); 

    avgFor(list); // pass the list to your method 
} 

そしてavgFor()方法からadd()への呼び出しを削除します。

static double avgFor(List<Integer> list) { 
    int max = list.get(0); 

    for (int i : list) { 
     max = max < i ? max : i; 
    } 

    return max; 
} 

あなたは、車輪を再発明しました。注:

int max = Collections.max(list); 
+0

コレクションを使用せずにこれを行うメソッドを作成しようとしていましたが、助けてくれてありがとう! – Sean

+0

@ ShubhenduPramanikこのスレッドに返信してください。Java関連 – Sean

4

あなたのメソッドは、引数としてリストを取ります。引数を指定せずにメソッドを呼び出すことはできません。

List<Integer> myList = new ArrayList<>(); 
avgFor(myList); 
2

あなたのアールは、その後、また

List<Integer> intList = new ArrayList<>(); 

    avgFor(intList); 
関連する問題