我试图在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。当您覆盖该方法时,您将为其赋予默认访问权限。有关更多信息,请阅读publicprotected,默认和private访问级别之间的区别。

关于java - 为什么我不能直接在子类中使用Reentrant类的getOwner()方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57513340/

10-10 03:41