0

クラスを拡張して、DbNodeServiceImplという名前のメソッドをオーバーライドしようとしてい public void setProperty(NodeRef nodeRef, QName qname, Serializable value)ます。

nodeService インターフェイスを使用してメソッドを呼び出そうとすると、作成したカスタム メソッドではなく、DbNodeServiceImpl に存在するデフォルト メソッドが呼び出されます。どうすれば同じことを実装できますか? nodeservice インターフェイスを使用して独自のメソッドを呼び出したいだけです。

4

2 に答える 2

1

次のように独自のクラスを定義する必要があります。

   <bean id="newOwnService" class="MyNewServiceImpl" init-method="init" parent="org.alfresco.repo.node.db.DbNodeServiceImpl" >
         .... some needed properties....

       </bean>

次に、メソッドを呼び出す場所:

<bean id="newClass" class="NewClass">
        <property name="somethingName" ref="newOwnService"/>
       </bean>

コード内:

private NodeService somethingName;

public setSomethingName(NodeService somethingName){
    this.somethingName = somethingName;
}
于 2016-04-20T12:25:08.527 に答える
0

インターフェイスは、同じシグネチャでオーバーライドされたメソッドを呼び出します。同じ実装者クラスでメソッドを 2 回オーバーライドすることはできません。より良い説明のためにコードを投稿する必要があります。

于 2016-04-20T10:49:12.957 に答える