-2

メソッドが単一の場合、正常に機能します。

String as = System.getProperty("line.separator");

    ArrayList<String> products = new ArrayList<String>();
products.add("Banana" +as+ "Its color is yellow.");
products.add("Orange" +as+ "Orange is a sour fruit.");
products.add("Onion" +as+ "Onion usually used on Pizza");

複数に分割されている場合。それは動作しません。

String as = System.getProperty("line.separator");

ArrayList<String> products = new ArrayList<String>();
    addFirstThousand(products);
    addSecondThousand(products);

    private void addFirstThousand(ArrayList<String> products) {
        products.add("Banana" +as+ "Its color is yellow.");
        products.add("Orange" +as+ "Orange is a sour fruit.");
        products.add("Onion" +as+ "Onion usually used on Pizza");
        }

    private void addSecondThousand(ArrayList<String> products) {
    products.add("Apple" +as+ "Apple is a big corporation");
    products.add("Love" +as+ "Love is releted to heart");
    products.add("Pizza" +as+ "It's origineted from Italy");

    }

理解を容易にするために:

ここに画像の説明を入力

これを複数に分割するにはどうすればよいですか?

4

3 に答える 3

3

クラス コード自体からメソッドを呼び出そうとしています。これを行うことはできません (この場合は機能しない静的初期化ブロックを除きます)。

作業している場所に応じて、次のコードを移動する必要があります。

addFirstThousand(products);
addSecondThousand(products);
  • で作業している場合、このコードは;Activityにあるはずです。onCreate()
  • の場合は、 ;Fragmentを使用します。onViewCreated()
  • それ以外の場合は、コンストラクターを使用します。

残りはそのままでいい。

このようなもの(の場合Activity):

public class MyActivity extends Activity {
    String as = System.getProperty("line.separator");

    ArrayList<String> products = new ArrayList<String>();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addFirstThousand(products);
        addSecondThousand(products);
    }

    private void addFirstThousand(ArrayList<String> products) {
        products.add("Banana" +as+ "Its color is yellow.");
        products.add("Orange" +as+ "Orange is a sour fruit.");
        products.add("Onion" +as+ "Onion usually used on Pizza");
    }

    private void addSecondThousand(ArrayList<String> products) {
        products.add("Apple" +as+ "Apple is a big corporation");
        products.add("Love" +as+ "Love is releted to heart");
        products.add("Pizza" +as+ "It's origineted from Italy");
    }
}
于 2012-12-14T03:53:34.317 に答える
0

理由があるかもしれません..

  1. これらのメソッドを静的メソッドから呼び出しaddFirstThousand(products);て います。解決策: create と static にするか 、createオブジェクトを使用してこれらのメソッドを呼び出します。addSecondThousand(products);
    addFirstThousand(products);addSecondThousand(products);
  2. これらのメソッドを別のクラスから呼び出しaddFirstThousand(products);ています。解決策: create object を使用してこれらのメソッドを呼び出します。addSecondThousand(products);
于 2012-12-14T05:11:16.883 に答える
0

正確なコンパイラエラーがなければ、答えを推測することしかできません。私の推測では、別のメソッド内でaddFirstThousand()andメソッドを宣言したと思われます。addSecondThousand()Java はこれを許可しません。このような場合は、これらのメソッドを包含メソッドの外に移動することで問題を解決できます。クラス内で宣言する必要がありますが、他のメソッド内では宣言しないでください。

于 2012-12-14T03:52:48.720 に答える