好的,所以我确实搜索了这个问题并且出现了相当多的结果。所有这些似乎都有不同的场景,每个解决方案都有所不同,所以我有点困惑。
基本上,我有一个运行我的程序并包含main方法的Driver类。我有一个第二课,有一些编辑派对的方法(比如游戏中的角色派对)。我想做的是这(主要方法的一部分)
System.out.println("Are you <ready> for your next battle? Or do you want to <edit> your party?");
Scanner readyScanner = new Scanner(System.in);
String readyString = readyScanner.next();
while(!readyString.equals("ready") && !readyString.equals("edit")) {
System.out.println("Error: Please input <ready> if you are ready for your next battle, or <edit> to change your party.");
readyScanner = new Scanner(System.in);
readyString = readyScanner.next();
}
if(readyString.equals("edit")) {
displayEditParty(playerParty, tempEnemy);
}
很多这只是一些背景代码,问题在于
displayEditParty(playerParty, tempEnemy);
我收到错误
Driver.java:283: cannot find symbol
symbol : method
displayEditParty(java.util.ArrayList<Character>,java.util.ArrayList<Character>)
location: class Driver
displayEditParty(playerParty, tempEnemy);
那么,我怎么能从我主要的另一个类中调用这个方法呢?在我的代码中,我使用了其他类的方法几次,我有点困惑,因为这个方法不起作用。
答案 0 :(得分:0)
你应该让displayEditParty
函数公共静态,然后你可以通过className.displayEditParty(?,?);
类的方法只能由该类的对象访问。检查以下代码:
class A{
void methodA(){
//Some logic
}
public static void methodB(){
//Some logic
}
}
public static void main(String args[]){
A obj = new A();
obj.methodA(); // You can use methodA using Object only.
A.methodB(); // Whereas static method can be accessed by object as well as
obj.methodB(); // class name.
}
答案 1 :(得分:0)
如果您的方法是static
,则可以致电ClassName.methodName(arguments);
如果你的驱动程序类不是静态的,你应该创建该类的瞬间并调用你的方法。
ClassName className=new ClassName();
className.displayEditParty(playerParty, tempEnemy);
答案 2 :(得分:0)
我看不到你在代码中声明Driver类的位置。
Driver foo = new Driver();
foo.displayEditParty(playerParty, tempEnemy);