我想存储坐标(xy整数)和另一个整数。我有一个带有变量x,y,steps和另一个类的类,我想在其中创建另一个类的对象并将它们存储在一个链表中,但这仅在我在for循环中创建对象时才有效。当我创建具有相同名称的对象时,编译器会说“已经在方法main中定义了变量”。 如何在for循环外创建对象?
这是与for循环一起使用的
import java.util.LinkedList;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
LinkedList<Coordinates> coords = new LinkedList<Coordinates>();
for (int j=0; j<3;j++)
{
Coordinates xy = new Coordinates();
System.out.println("give x");
xy.x=sc.nextInt();
System.out.println("give y");
xy.y=sc.nextInt();
xy.steps=xy.steps+1;
coords.add(xy);
}
}
}
我想要这样的东西,但它不起作用
import java.util.LinkedList;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
LinkedList<Coordinates> coords = new LinkedList<Coordinates>();
Coordinates xy = new Coordinates();
System.out.println("give x");
xy.x=sc.nextInt();
System.out.println("give y");
xy.y=sc.nextInt();
xy.steps=xy.steps+1;
coords.add(xy);
Coordinates xy = new Coordinates();
System.out.println("give x");
xy.x=sc.nextInt();
System.out.println("give y");
xy.y=sc.nextInt();
xy.steps=xy.steps+1;
coords.add(xy);
}
}
不仅会有另外两个对象!
答案 0 :(得分:1)
您已复制粘贴xy
的声明。
这是您获得的“已定义变量”错误消息的原因。实际的错误消息甚至应该为您提供问题的行号,以便您可以识别它。
在第二种情况下,只需将其引用为 Timer randomTimer = new Timer();
randomTimer.schedule(new TimerTask() {
@Override
public void run() {
// do your stuff including the next
int size = Shapes.size();
Platform.runLater(() -> {
MyPane.getChildren().add(Shapes.get(size));
});
}
}, 0, 1000);
。