这是Java语言的编码问题。
请问选项A和B有什么区别?
Thread T1;
Option A: t1.currentThread();
Option B: t1 = Thread.currentThread();
编译器给出选项A的错误。
答案 0 :(得分:0)
请问选项A和B有什么区别?
一件事有不同的方式。
编译器给出选项A的错误。
编译器显示错误Variable 'threa' might not have been initialize
。因为您没有初始化Thread t1
。尝试下面的代码以更好地理解。
Thread threa = new Thread(new Runnable() {
@Override
public void run() {
// your thread work
}
});
threa.start();
threa.currentThread();
现在您可以在 Thread Documentation 中看到。 currentThread
类中的Thread
方法是 static
。
返回对当前正在执行的线程对象的引用。
如果您以正确的方式调用Thread.currentThread()
来调用静态方法。如果调用t1.currentThread();
,则从实例/对象中调用静态方法是冗余。
因此上述代码是多余的,您可以通过 Thread class
进行调用。
Thread.currentThread();