将方法拆分为多个

时间:2012-12-14 03:45:06

标签: java android

当方法单一时,它可以正常工作。

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");

    }

为了更轻松的下载:

enter image description here

如何将其拆分为多个?

3 个答案:

答案 0 :(得分: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");
    }
}

答案 1 :(得分:0)

我只能在没有确切编译错误的情况下猜测答案。我的猜测是你已经在另一个方法中声明了addFirstThousand()addSecondThousand()方法。 Java不允许这样做。如果是这种情况,那么您可以通过将这些方法移到包含方法之外来解决问题。它们应该在中声明,但不能在其他方法中声明。

答案 2 :(得分:0)

可能有原因..

  1. 您正在呼叫addFirstThousand(products);addSecondThousand(products);来自静态方法的这些方法 解决方案:make addFirstThousand(products);addSecondThousand(products);使用静态调用这些方法 创建对象。
  2. 您正在从不同的班级拨打addFirstThousand(products);addSecondThousand(products);这些方法 解决方案:使用create object调用这些方法。