-4

this is a coding question for Java language.

May I know what is the difference between Option A and B?

Thread T1; 
Option A: t1.currentThread();
Option B: t1 = Thread.currentThread(); 

The compiler gives an error for Option A.

Karol Dowbecki
  • 38,744
  • 9
  • 58
  • 89

1 Answers1

0

May I know what is the difference between Option A and B?

One thing different ways.

The compiler gives an error for Option A.

Compiler shows error Variable 'threa' might not have been initialize. because you did not initialize Thread t1. Try below code for better understanding.

        Thread threa = new Thread(new Runnable() {
                @Override
                public void run() {
                    // your thread work
                }
            });
            threa.start();
            threa.currentThread();

Now you can see in Thread Documentation. currentThread method in Thread class is static.

Returns a reference to the currently executing thread object.

If you call Thread.currentThread() that is right way to call static method. If you call t1.currentThread();, then it is redundant to call static method from an instance/object.

So above code is redundant, you can call it via Thread class.

Thread.currentThread();
Khemraj Sharma
  • 46,529
  • 18
  • 168
  • 182