вроде как все работает как надо
это один из вариков из комментариев, и у люда он работал
я пробовал другой из комментов
и мой так же
все падают на последних 4 пунктах. очевидно ,проблема не в run
что то как то не понял где?
package com.javarush.task.task16.task1605;
import java.util.Date;
/*
Поговорим о музыке
*/
public class Solution {
public static int delay = 1000;
public static void main(String[] args) {
Thread violin = new Thread(new Violin("Player"));
violin.start();
}
public static void sleepNSeconds(int n) {
try {
Thread.sleep(n * delay);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public interface MusicalInstrument extends Runnable {
Date startPlaying();
Date stopPlaying();
}
public static class Violin implements MusicalInstrument {
private String owner;
public Violin(String owner) {
this.owner = owner;
int start = Integer.parseInt(String.valueOf(startPlaying().getTime()));
sleepNSeconds(1);
int stop = Integer.parseInt(String.valueOf(stopPlaying().getTime()));
System.out.println("Playing " + ( stop - start ) + " ms");
}
public Date startPlaying() {
System.out.println(this.owner + " is starting to play");
return new Date();
}
public Date stopPlaying() {
System.out.println(this.owner + " is stopping playing");
return new Date();
}
@Override
public void run() {
long start = startPlaying().getTime();
startPlaying();
sleepNSeconds(1);
long finish = stopPlaying().getTime();
stopPlaying();
System.out.println("Playing " + (finish - start) + " ms");
}
}
}