当方法单一时,它可以正常工作。
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");
}
为了更轻松的下载:
如何将其拆分为多个?
答案 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)
可能有原因..
addFirstThousand(products);
和
addSecondThousand(products);
来自静态方法的这些方法
解决方案:make addFirstThousand(products);
和
addSecondThousand(products);
使用静态或调用这些方法
创建对象。addFirstThousand(products);
和addSecondThousand(products);
这些方法
解决方案:使用create object调用这些方法。