superClassII
タイプに応じていくつかの治療をしたいと思います。だから、私は定義された:。スイッチ(不明な変数タイプ)
ClassExpressionType superClassIIType = superClassII.getClassExpressionType();
を(superClassIITypeは= "ObjectMincardinality" or
"ObjectExactCardinality" `ので、
I do the same treatment for superClassII
else
我々は何もしない場合
ここに私のソースコードの一部です:
switch(superClassIIType){
case OBJECT_EXACT_CARDINALITY:
case OBJECT_MIN_CARDINALITY:
if ((((superClassIIType)superClassII).getProperty().equals(
((OWLObjectMinCardinality)superClass).getProperty()){
int superClassIICardinality =((superClassIIType)superClassII).getCardinality();
...
}
break;
default:
break;
}
しかし、superClassIIType
は受け付けていません。私は、私が必要とするものを、単純にif ...else
にしようとしました。ifブロックとelseブロックには両方とも同じ処理が含まれています(それは動作しますが、それは素朴だと思います)。問題があると私は)別の代替を使用して必要なものを実装する場合はどこでコードを複製する必要がしますが、
あなたは、これは訪問者に最も行われている)
これは、OWLと何か関係があるよりもJavaの問題に似ています。 'superClassIIType'はオブジェクトであり、Javaクラスではありません。キャストすることはできません。関連するインタフェースは['OWLObjectExactCardinality'](http://owlcs.github.io/owlapi/apidocs_4/org/semanticweb/owlapi/model/OWLObjectExactCardinality.html)と[' OWLObjectMinCardinality'](http://owlcs.github .io/owlapi/apidocs_4/org/semanticweb/owlapi/model/OWLObjectMinCardinality.html)。 – dhke
...あなたのケースでは、おそらく['OWLObjectCardinalityRestriction'](http://owlcs.github.io/owlapi/apidocs_4/org/semanticweb/owlapi/model/OWLObjectCardinalityRestriction.html)にキャストすることができます。所望の方法を有する。 – dhke