0

これが私の現在の状況です:

import java.util.ArrayList;
import java.util.Scanner;

import com.sun.xml.internal.ws.api.pipe.NextAction;

import static java.lang.System.*;

public class NumberAnalyzer
{
private ArrayList<Number> list;

public NumberAnalyzer()
{

}

public NumberAnalyzer(String numbers)
{
    String nums = numbers;
    Scanner chopper = new Scanner(nums);
    while(chopper.hasNext()){
        int num = chopper.nextInt();
        list.add(num);
    }
    list = 
}

たとえば、数字の文字列を変換して5 12 9 6 1 4 8 6、これに追加するにはどうすればArrayList<Number>よいですか?Eclipseは次のように述べています

ArrayList型のメソッドadd(int、Number)は、引数(int)には適用できません。

ここで編集 するのは、関連するすべての.javaファイルへのペーストビンリンクです。

http://pastebin.com/9KDXLwbL(NumberAnalyzer.java

http://pastebin.com/BGRpbpyH(Number.java

http://pastebin.com/EhmZ6kKH (ランナークラス)

http://pastebin.com/BCzeZytg(NumberTester.java これはラボの一部であったNumber.javaでうまく機能します)

4

3 に答える 3

1

Numberどうやら、あなたは現在のパッケージにあなた自身のクラスを持っています。

したがって、にArrayList<Number>はが含まれていませんがjava.lang.Number、完全に別のタイプが含まれています。したがって、にを追加することはできませんint。コンパイラは、をカスタムクラスintのインスタンスに変換できません。Number

代わりに、Numberクラスのインスタンスを明示的に作成するか、それを削除してを使用する必要がありますjava.lang.Number。(これintには暗黙の変換があります)

于 2013-01-10T00:55:55.440 に答える
1

問題は、別のクラスがあることですNumber。次のようにコードを変更します。

import java.util.ArrayList;
import java.util.Scanner;

public class NumberAnalyzer {

    private ArrayList<Number> list;

    public NumberAnalyzer() {
    }

    public NumberAnalyzer(String numbers) {
        list = new ArrayList<Number>();
        String nums = numbers;
        Scanner chopper = new Scanner(nums);
        while (chopper.hasNext()) {
            list.add(new Number(chopper.nextInt()));
        }
        chopper.close();
    }

}

このようにNumber、デフォルトのクラスではなく、クラスを使用しています。

于 2013-01-10T01:05:59.353 に答える
0

パラメータ化されたアプローチを使用する場合は、パラメータとして整数を使用し、追加中に整数にキャストします。

private ArrayList<Integer> list = new ArrayList<Integer>();
list.add(Integer.valueOf(num));

パラメータ化されたアプローチを使用したくない場合は、intとしてリストに追加するだけです。

private ArrayList list = new ArrayList();
list.add(Integer.parseInt(num));
于 2013-01-10T00:55:26.403 に答える