2016-08-12 2 views
3
  • ため匹敵 実施 Comparable<Fragment>
以下のJAXBバインディングで
public class Fragment implements Serializable, Comparable<Fragment> { 
    ... 
    public int compareTo(Fragment other) { 
    ..... 
    return 0; 
    } 
} 

ファイルJAXB 2.1</li> <li>を実装するクラス<code>Fragment</code>発生持ちたい使用されているJavaプラグインの.xsd</li> <li>JAXB2-基礎からコードを生成するJAXB 2.1を使用して生成されたクラス

<?xml version="1.0" encoding="UTF-8"?> 
<jxb:bindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
    xmlns:ci="http://jaxb.dev.java.net/plugin/code-injector" 
    xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance" 
    jxb:extensionBindingPrefixes="xjc" 
    jxb:version="2.1"> 
    <jxb:bindings> 
     <jxb:globalBindings> 
      <xjc:serializable uid="12343" /> 
     </jxb:globalBindings> 
    </jxb:bindings> 
    <jxb:bindings schemaLocation="../schemas/Fragment.xsd" 
     version="1.0" node="/xs:schema"> 
     <jxb:bindings node="//xs:element[@name='Fragment']/xs:complexType">   
      <inheritance:implements>java.lang.Comparable</inheritance:implements> 
      <ci:code>   
public int compareTo(Fragment other) { 

    return fragmentVersion.compareTo(other.fragmentVersion); 
} 
      </ci:code> 
     </jxb:bindings> 
    </jxb:bindings> 
</jxb:bindings> 

下記のショーとしてクラスを生成することができ:

public class Fragment implements Serializable, Comparable { 
    ... 
    public int compareTo(Fragment other) { 
    return fragmentVersion.compareTo(other.fragmentVersion); 
    } 
} 

問題:ご覧のとおり、クラスはimplements Comparable代わりのimplements Comparable<Fragment>として生成されます。

確かに、何か不足しています。解決するための助けに感謝します。

+1

あなたが実際に '<実装継承>を試してみました。比較対象<フラグメント> '? <:実装継承> java.lang.Comparableと必要終了タグを言って、エラーを示すた ' – lexicore

+0

@lexicoreは、私は'てみました。ちょうどあなたの提案を試して、それは動作します。それは答えであり、それを受け入れることは喜ばしいことです。どうもありがとうございます。 – Rao

答えて

3

JAXB2-基本ジェネリックをサポートしています。

だけ使用します。

<inheritance:implements>java.lang.Comparable&lt;Fragment&gt;</inheritance:imple‌​ments> 
4

をlexicoreが提供するソリューションをテストしながら、問題を解決する別の方法に気づい:java.langで:

<inheritance:implements><![CDATA[java.lang.Comparable<Fragment>]]></inheritance:implements> 
関連する問題