我从OOP开始 而且我有以下问题: 我上了新课 然后我从这堂课开始 现在,对于每个实例,我都想做点什么 我为每个循环尝试了一个,但它不起作用... 有一些语法问题
这是课程:
package main;
public class command
{
String call;
String execute;
}
这是来自Main类的:
private static void load() {
command greeting = new command();
greeting.call = "hello";
greeting.execute = "Hello Sir";
for (command c: command) {
System.out.println("Another command...");
}
}
我不知道该如何制作循环,或者还有另一种方法吗?
答案 0 :(得分:0)
在for
循环中使用的语法必须使用实现Iterable
接口的类的实例。例如,您可以使用List
接口的实现。
例如,您可以尝试:
private static void load() {
command greeting = new command();
greeting.call = "hello";
greeting.execute = "Hello Sir";
List<command> listOfCommands = new ArrayList<>();
listOfCommands.add(greeting);
for (command c: listOfCommands) {
System.out.println("Another command...");
}
}
答案 1 :(得分:0)
您可以在类命令内创建一个静态列表,实例将被添加到构造函数中。然后,您将始终引用创建的任何实例。
这是一个例子:
import java.util.List;
import java.util.ArrayList;
public class command
{
String call;
String execute;
public static List<command> commands = new ArrayList<>();
public command() {
commands.add(this);
}
public command(String call, String execute)
{
this.call = call;
this.execute = execute;
commands.add(this);
}
public String toString()
{
return "call: " + call + " | execute: " + execute;
}
}
驱动程序类:
public class driver
{
public static void main(String[] args)
{
for(int i = 1; i <=10; i++)
{
command c = new command("call" + i, "execute" + i);
}
for(command cmd: command.commands)
{
System.out.println(cmd);
}
}
}
输出: