gpt4 book ai didi

java - 如何获得嵌套类实例流口水

转载 作者:太空宇宙 更新时间:2023-11-04 11:25:48 25 4
gpt4 key购买 nike

我是流口水使用的新手,我有一个小疑问。我有如下 map ,我使用 schemaJson2Pojo java api 创建了 pojo :

{
"svo": [
{
"clause": "Sunanda Pushkar died of poisoning",
"svoMetadata": {
"person": "sunanda pushkar",
"subjectType": "person_coref"
},
"objectPOS": "IN VBG;",
"isRelatedKeySVO": false,
"subjectPOS": " NNP NNP",
"subject": "Sunanda Pushkar",
"confidence": 0.9266232318014763,
"verb": "died",
"verbPOS": "VBN",
"source": "OpenIE",
"isKeySVO": true,
"object": "of poisoning;"
}]
}

注意:svo.svoMetadata 有人名

因此,在使用 schemaJson2Pojo api 时,会生成以下类:

class RootDoc
{
private List<Svo> svo = new ArrayList<Svo>();

public List<Svo> getSvo() {
return svo;
}


public void setSvo(List<Svo> svo) {
this.svo = svo;
}
}

class Svo
{
private SvoMetadata svoMetadata;

public SvoMetadata getSvoMetadata() {
return svoMetadata;
}


public void setSvoMetadata(SvoMetadata svoMetadata) {
this.svoMetadata = svoMetadata;
}
}

class SvoMetadata
{
private String person;

public void setPerson(String person) {
this.person = person;
}

public SvoMetadata withPerson(String person) {
this.person = person;
return this;
}

}

我将 RootDoc 转发给 drl,并且我正在尝试获取“svoMetadata”的实例,如下所示,希望更新 drl RHS 中的人员:

drl中的规则如下:

when 
$mastermap : EsRootDoc($svolist:svo)
$svo : Svo($svoMetadata2 : svoMetadata) from $svolist
// $svoMetadata: SvoMetadata($t: $svo.getSvoMetadata()) // this gives me error
then
$svoMetadata.setPerson("taranTaran"); // how do i get SvoMetadata instance to perform setPerson method????

如何获取 SvoMetadata 实例来执行 setPerson 方法???

最佳答案

对于其他可能正在寻找上述 NPE 问题的 drl 语法的人。

    $mastermap : EsRootDoc($svolist:svo)
$svo : Svo($svoMetadata2 : svoMetadata!=null,svoMetadata.person!=null) from $svolist

检查 svoMetadata!=null 解决了问题。

关于java - 如何获得嵌套类实例流口水,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44384063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com