2015-11-26 4 views
-2

Привет, я создаю тестовый Java-код, но класс runnable не работает. код внутри работоспособный строителя работы, но переопределение запустить не работаетRunnable not work

import java.util.Timer; 
import java.util.TimerTask; 
import java.util.Random; 

public class Test 
{ 
    //timer for change zone 
    private Timer timeZoneChange; 

    Test() 
    { 
     timeZoneChange = new Timer(); 

     timeZoneChange.schedule(new TimeForChangeZone(), 1 * 1000); 
    } 


    public class TimeForChangeZone extends TimerTask 
    { 
     @Override 
     public void run() 
     { 
      System.out.println("testing.."); 
      new UpdatePvpFlagZone(false); 
      //change zone flag 
      timeZoneChange.schedule(new TimeForChangeZone(), 1 * 60000); 
     } 
    } 

    public class UpdatePvpFlagZone implements Runnable 
    { 
     //remove pvp flag 
     private boolean removePvpFlag; 

     public UpdatePvpFlagZone(boolean removePvpFlag) 
     { 
      removePvpFlag = removePvpFlag; 
     } 

     @Override 
     public void run() 
     { 
      for (int i = 0; i<10; i++) 
      { 
       if (i == 5) 
        break; 
       //update flag 
       if (!removePvpFlag) 
       { 
        if (i == 6) 
         break; 
        System.out.println(i); 
        break; 
       } 
       //remove flag 
       if (i == 7) 
        break; 
       System.out.println(i); 
      } 
     } 
    } 

    public static void main(String[] args) 
    { 
     new Test(); 
    } 
} 

консоли печать это, но внутри переопределение запустить не печатать.

> java Test 
testing.. 
+0

Хм, попробуйте 'UpdatePvpFlagZone upfz новый UpdatePvpFlagZone (ложь); upfz.run(); ' –

+0

Что вы ожидаете увидеть? Зачем? –

+0

@LaneSurface не работает. –

ответ

0

На этой линии new UpdatePvpFlagZone(false);, Конструктор вызывается, но работоспособной еще не началась.

Запустите работоспособной так:

UpdatePvpFlagZone upfz new UpdatePvpFlagZone(false); 
upfz.run();