我有两个单独的文件,一个名为WonderfulArrayList
,另一个名为ArrayListMain
(我正在尝试使用ArrayLists,我不太清楚该怎么做)所以我有一个WonderfulArrayList文件中的方法,但是主文件看不到我命名为booladdData
的方法,一旦将数据添加到数组列表中,该方法将返回true。我的WonderfulArrayList文件如下:
import java.util.*;
import java.io.*;
public class WonderfulArrayList{ //implement WonderfulArrayList
public static int ADDNums;
public static int index;
public static int HEADNums;
public static ArrayList<Integer> arr = new ArrayList<Integer>(15);
public static boolean booladdData(ArrayList<Integer>arr){
arr.add(ADDNums);
return true;
}
}
如您所见,我使用名为arr
的ArrayList实例化booladdData。现在,如果你看看我的主文件:
public class ArrayListMain{
//public ArrayList<Integer> arr = new ArrayList<Integer>(15);
public static void main(String[]args){
ArrayList<Integer> arr = new ArrayList<Integer>(15);
int MenuNum = 0;
int ADDNums = 0;
Object Obj = new Object();
Scanner scanner1 = new Scanner(System.in); //set up scanner for user input
while(MenuNum != 7){ //menu loop
Menu(MenuNum);
MenuNum = scanner1.nextInt();
if(MenuNum == 1){
arr.booladdData();
}
出于某种原因,即使我知道booladdData是作为公共创建的,并且它们都在同一个文件夹中,但主文件没有范围可以在单独的文件中看到booladdData。
知道我做错了吗?
答案 0 :(得分:1)
您应该拨打WonderfulArrayList.booladdData(arr)
而不是arr.booladdData()
。方法booladdData()
被定义为WonderfulArrayList
类的类方法。它不是Java ArrayList
的实例方法。
您可能还想阅读面向对象的编程。代码中的所有内容都是static
。
答案 1 :(得分:0)
您需要创建自己的类型而不是ArrayList
package com.jbirdvegas.test;
import java.util.ArrayList;
public class MainClazz {
public static void main(String[] args) {
// notice I'm creating my type `MyArrayList` instead of `ArrayList` type
MyArrayList myArrayList = new MyArrayList();
myArrayList.add("blah");
System.out.println("My message:" + myArrayList.getSomething());
}
}
class MyArrayList extends ArrayList {
public String getSomething() {
return "something";
}
}
打印:
My message: something