我试图在ReentractLock类的子类中使用getOwner方法,
我知道在包之外,受保护的方法仅对子类可用。
因此,我希望getOwner方法可用于我的sublcass MyLock。
但即时通讯无法使用它。
1。
public class Mylock extends ReentrantLock { }
当我使用
new Mylock().getOwner()
我收到错误消息,未定义getOwner。
2。
public class Mylock extends ReentrantLock {
String getOwner() {
Thread t = this.getOwner();
return t.getName();
}}
现在,当我使用新的
MyLock().getOwner()
时,它将起作用。我的问题是当我将
new MyLock().getOwner()
与第一种逻辑一起使用时,为什么它显示未定义的方法,至少我应该获得线程对象。 最佳答案
According to the documentation ReentrantLock.getOwner()
是protected
。当您覆盖该方法时,您将为其赋予默认访问权限。有关更多信息,请阅读public
,protected
,默认和private
访问级别之间的区别。
关于java - 为什么我不能直接在子类中使用Reentrant类的getOwner()方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57513340/