我正在与JENA framework一起抓取有关公共合同的信息并将其发布为RDF,但无法解决以下问题:
创建新的RDF模型时,我为每个合同创建新的Resource,然后使用JENA的addProperty(Property, RDFNode)addProperty(Property, String)方法分配一堆属性(我抓取的属性)。问题是,有些合同缺少某些属性,所以我得到了NullPointerException
使用

if(contract.getProperty() != null)
{
   resource.addProperty(VOCABULARY.property, contract.getProperty());
}


对于每个单个属性可能不是最佳方法,因为addProperty()方法的第二个参数相差很大
(它可以直接是contract.getProperty(),但有时也可以是model.createLiteral(contract.getProperty())
model.createTypedLiteral(contract.getProperty(), XSDDataType.XSDInt)等),我无法创建自己的myAddProperty()方法
我将在其中检查null并致电JENA的addProperty()
您建议跳过所有null属性的最佳解决方案是什么?
非常感谢您的任何建议。

最佳答案

将空检查重构为单独的方法:

private void addProperty(final Resource resource, final String key, final String value) {
    if (value != null) {
        resource.addProperty(key, value);
    }
}


然后,您可以按以下方式使用此方法:

addProperty(resource, VOCABULARY.property, contract.getProperty());

08-07 06:23