JAVA使用计时器重复创建的对象。有没有办法在每次计时器执行时减少其中一个变量
我正在创建一个在计时器上创建的电池对象。我正在把它的输出输入数据库 它基本上只是一个监控电池设备的前端模拟器。并在变量低于某个值时发出错误 到目前为止,我每10秒创建一个对象,如下所示JAVA使用计时器重复创建的对象。有没有办法在每次计时器执行时减少其中一个变量,java,timertask,Java,Timertask,我正在创建一个在计时器上创建的电池对象。我正在把它的输出输入数据库 它基本上只是一个监控电池设备的前端模拟器。并在变量低于某个值时发出错误 到目前为止,我每10秒创建一个对象,如下所示 public class Battery { public String name; public int input; public int output; public static int charge; Random random = new Random(); public Battery(Stri
public class Battery {
public String name;
public int input;
public int output;
public static int charge;
Random random = new Random();
public Battery(String dName) {
this.name = dName;
this.input = random.nextInt((415 - 400) + 1) + 400;
this.output = input + random.nextInt((3 - 0) + 1);
}
@Override
public String toString() {
return "Battery [name=" + name + ", input=" + input + ", output=" + output + ", charge=" + charge + "]";
}
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
Battery battery = new Battery("Battery 1");
System.out.println(battery.toString());
}
} , 0, 1000);// end of timer
}
我有一个代表电池电量的可变电量。我试着用一个while循环来减少这个值
battery.setCharge(100);
int charge = battery.getCharge();
System.out.println(charge);
while (charge>0) {
System.out.println(charge);//for testing
battery.setCharge(charge);
charge--;
}
但由于计时器的性质,每次创建的对象都是相同的。所以在这种情况下,它只是从100倒计时,然后输出电荷为1
有没有办法在每次调用计时器时降低此值?我尝试过使用一个静态整数,但没有任何帮助
我还尝试将while循环放在public void run()方法之外,并因此得到了无数错误
仍然处于Java的学习阶段,这可能需要沿着线程路线进行。但我还没有完全做到
此外,我还特意没有添加计时器结束的方法,它只是我在eclipse中打开和关闭的东西,以观察数字出现在我的前端
如果不允许添加第二个问题,请道歉,但是否有办法
this.input = random.nextInt((415 - 400) + 1) + 400;
每隔一段时间返回一个0?修复代码格式可能会帮助我们。@Basil Bourque关于修复什么有什么建议吗?我通常只是让它通过第二个代码示例的缩进,使用ctrl+IStart自动格式化。