Я создал 2 таймера в 2 отдельных классах. Один таймер увеличивает счетчик int. а другой использует метод get и выводит значение счетчика int.java с использованием методов getter и setter и возврата 0
Проблема является второй таймер только печатает 0, 0, 0 и т.д., если я использую private int counter
тогда, если я должен был использовать private static counter
он печатает 1,2,3,4,5 и т.д., которые это то, что я хочу. Но я бы предпочел не использовать static
, потому что ive было сказано о его плохой практике.
Вот мой основной класс:
import java.util.Timer;
public class Gettest {
public static void main(String[] args) {
classB b = new classB();
classC c = new classC();
timer = new Timer();
timer.schedule(b, 0, 2000);
Timer timer2 = new Timer();
timer2.schedule(c, 0, 2000); }}
класса B с timer1
import java.util.TimerTask;
public class classB extends TimerTask {
private int counter = 0;
public int getint()
{ return counter;}
public void setint(int Counter)
{ this.counter = Counter;}
public void run()
{ counter++;
this.setint(counter);}}
класса C с таймером 2
import java.util.TimerTask;
public class classC extends TimerTask
{
classB b = new classB();
public void run(){
System.out.println(b.getint());}}
Как я мог исправить, так что я это работает с помощью private int counter;
?
1. Пожалуйста, используйте стандартное форматирование Java. Случайное форматирование на лету делает ваш код сложным для программистов Java красным. 2. Создайте и опубликуйте действительный [mcve], чтобы мы могли запускать, тестировать и изменять реальный исполняемый код. Вы заявляете «вот мой основной класс», но это не ваш весь основной класс. Вместо этого создайте и опубликуйте свою ** небольшую ** компилируемую и исполняемую программу, которая демонстрирует вашу проблему для нас, а не ссылку, а скорее здесь с вашим вопросом. –
«Я бы предпочел не использовать статику, потому что мне рассказали о ее плохой практике», все плохо, если вы не используете их правильно. – Ramanlfc
@Hovercraft Full Of Eels я отредактировал сообщение, чтобы включить все в класс, чтобы оно было запущено сейчас. Все, что было необходимо, это импорт. Какие-нибудь советы, которые вы могли бы мне дать? – Ricky