Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法访问子类中受保护的方法_Java_Spring Jms - Fatal编程技术网

Java 无法访问子类中受保护的方法

Java 无法访问子类中受保护的方法,java,spring-jms,Java,Spring Jms,我无法访问子类(在同一个包中)中的受保护方法 我使用的是SpringJMS API,DefaultMessageListenerContainer类 在我的代码中,我有一个DefaultMessageListenerContainer类的实例,我试图在该对象上调用getBeanName()方法,但在eclipse中它说 “类型AbstractJMSlientingContainer中的方法getBeanName()不可见” 根据javadoc,这个getBeanName()方法是一个在超类“Ab

我无法访问子类(在同一个包中)中的受保护方法

我使用的是SpringJMS API,DefaultMessageListenerContainer

在我的代码中,我有一个DefaultMessageListenerContainer类的实例,我试图在该对象上调用getBeanName()方法,但在eclipse中它说

“类型AbstractJMSlientingContainer中的方法getBeanName()不可见”

根据javadoc,这个getBeanName()方法是一个在超类“AbstractJMSlientingContainer”中定义的受保护方法

根据我的理解,我们应该能够访问子类中受保护的方法。 我错过什么了吗

附加示例java代码段


您发布的代码片段没有从子类中访问
getBeanName()
。它正在尝试从客户端代码访问它。您必须定义自己的子类以公开一个公共方法来访问它:

class MyDefaultMessageListenerContainer extends DefaultMessageListenerContainer {
    public getMyBeanName() { return getBeanName(); }
}

MyDefaultMessageListenerContainer container = new MyDefaultMessageListenerContainer();
String name = container.getMyBeanName();

请注意,您不能简单地覆盖
getBeanName()
,因为它声明为
final

不发布图片。告诉我们你在哪里尝试使用你展示的代码。我不完全理解你的情况;我无法在我的浏览器中打开你的图片。对不起。请你回答以下问题:1。DefaultMessagListenerContainer是来自您正在使用的API还是您的子类?2.您是否正在子类化DefaultMessageListenerContainer?如果是这样,您将无法访问受保护的成员,因为您只能访问受保护的成员,前提是您的类是超级类的直接子类。我发布了图片来说明这个问题。@univise:1。是的。不,我不是子分类下面是我的代码片段,