我遇到了问题:
我正在使用我想要保存到int中的输入(字符串)。我想在另一个类中使用该int,但在用户输入后int仍为0。代码如下。我想在另一个类中使用int fsize。我想将其与getFsize()
一起使用,但如果我在其他类中使用它,则会显示fsize = 0
。
public class MineSweeper {
private boolean gameOn = true;
int fsize;
int bpercent;
ConsoleIO io = new ConsoleIO();
// start getters and setters
public int getFsize() {
return fsize;
}
public void setFsize(int fsize) {
this.fsize = fsize;
}
public int getBpercent() {
return bpercent;
}
public void setBpercent(int bpercent) {
this.bpercent = bpercent;
}
// end getters and setters
// while (gameOn = true) {
public void startGame() {
io.writeOutput("Welkom bij het spelletje Mijnenveger!");
io.writeOutput("Probeer alle mijnen te vinden in het mijnen veld.");
}
public void fieldSize() {
io.writeOutput("Geef de grootte van het veld (5-20):");
// read the input from the console
String input1 = io.readInput();
if (input1.matches("[0-9]+")) {
this.fsize = Integer.parseInt(input1);
if (this.fsize > 20 || this.fsize < 5) {
System.out
.println("*** De grootte moet tussen 5 en 20 liggen! ***");
fieldSize();
} else {
System.out.println(this.fsize);
}
} else {
System.out.println("Vul wel een enkel getal in tussen 5 en 20!");
fieldSize();
}
}
答案 0 :(得分:0)
您希望Integer.valueOf(input1)
代替Integer.parseInt(input1)
。
答案 1 :(得分:0)
您可以像使用整数基元类型一样使用Integer对象。这是因为Java的Autoboxing,它将int无缝转换为Integers。
您可以在不转换或调用其他方法的情况下说somevalue = input1;
或input1 = somevalue;
。
答案 2 :(得分:-1)
您使用的是MineSweeper类的相同实例吗?当声明属性fsize时,它默认以值0开始。如果不调用方法fieldSize()将输入值分配给您启动的每个实例的属性fsize,它将始终为0