最初にステートメントからオブジェクトを抽出してから、関数の1つを使用しようとしましたisBag() isSeq() and isAlt()
が、エラーが発生しました
"cannot find symbol
symbol: method isBag()
location: variable object of type RDFNode"
最初にステートメントからオブジェクトを抽出してから、関数の1つを使用しようとしましたisBag() isSeq() and isAlt()
が、エラーが発生しました
"cannot find symbol
symbol: method isBag()
location: variable object of type RDFNode"
次のようなエラーが発生した場合:
シンボル symbol が見つかりません: メソッド
isBag()
の場所: タイプの変数オブジェクトRDFNode
次に、(Java ソースに関して) のRDFNode
代わりにResource
. Statement.getSubject()が を返すため、これは驚くべきことResource
です。これは、次のようなことをしているように聞こえることを意味します。
RDFNode subject = statement.getSubject();
if ( subject.isBag() ) { … }
ただし、できません
Resource subject = statement.getSubject();
if ( subject.isBag() ) { … }
isBag
なども で定義されていないためResource
です。それらはContainerから来ます。ただし、できることは、 Resource (または RDFNode) がコンテナーとして表示できるかどうかを確認することです。コンテナーとして表示できる場合は、メソッドを使用してコンテナーを取得します。これにより、より具体的なサブタイプを確認できます。canAs
( Container.class )
as
Resource subject = statement.getSubject();
if ( subject.canAs( Container.class ) ) {
Container container = subject.as( Container.class );
if ( container.isBag() ) {
…
}
else if ( container.isAlt() ) {
…
}
…
}