I was going through Handlers, the post method in it accepts a parameter of type Runnable. There's a following code snippet I came across
final Handler handler = new Handler();
    handler.post(new Runnable() {
        @Override
        public void run() {
            timeView.clearComposingText();
            Integer hours = seconds/3600;
            Integer minutes = (seconds % 3600)/60;
            Integer secs = seconds % 60;
            String time = String.format("%d:%02d:%02d",hours,minutes,secs);
            timeView.setText(time);
            if(running)
            {
                seconds++;
            }
            handler.postDelayed(this,1000);
        }
    });
Now since Runnable is an Interface in Java, how are we able to create a new instance of Runnable directly?
 
    