Мне нужно сравнить два объекта одного и того же класса в одном правиле слюни. Но как я могу знать, что один атрибут принадлежит объекту, созданному в основном классе? Мне нужна помощь!Мне нужно сравнить объекты того же класса
public class CheckerMain {
public static void main(String[] args) {
try {
KnowledgeBase kbase = readKnowledgeBase();
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "ConflictChecker");
DeonticConcept deoCon1 = new DeonticConcept("forbidden");
DeonticConcept deoCon2 = new DeonticConcept("permission");
ksession.insert(deoCon1);
ksession.insert(deoCon2);
ksession.fireAllRules();
logger.close();
} catch (Throwable t) {
t.printStackTrace();
}
}
private static KnowledgeBase readKnowledgeBase() throws Exception {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("Rules.drl"), ResourceType.DRL);
KnowledgeBuilderErrors errors = kbuilder.getErrors();
if (errors.size() > 0) {
for (KnowledgeBuilderError error: errors) {
System.err.println(error);
}
throw new IllegalArgumentException("Could not parse knowledge.");
}
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
return kbase;
}
}
Я хочу, чтобы сравнить atribute nameConceptDeontic инстансовых в объекты deoCon1 и deoCon2 в одном правиле. Как я могу это сделать?
где этот атрибут? является ли он членом класса ConceptDeontic? какой тип? возможно, используйте код ConceptDeontic. –
Вы можете сделать это с .... равным? deoCon1.getNameConceptDeontic(). Equals (deoCon2.getNameConceptDeontic()); Я принимаю атрибуты String. – n3k0
Послушайте, я использую Jboss Drools. Я пример два объекта (deoCon1 и deoCon2). В моем правиле (Rules.drl) мне нужно сравнить атрибуты объектов экземпляров. Атрибуты (nameDeonticConcepts) принадлежат моему классу (DeonticConcept). Я создаю getts и setts в своем классе. Но я пытаюсь использовать свой экземпляр в своих правилах, и появляется сообщение об ошибке. ** BuildError: Не удалось разрешить OBJECTTYPE deoCon1.getNameConceptDeontic '** Мое правило есть condiction: когда \t deoCon1.getNameConceptDeontic() == deoCon2.getNameConceptDeontic() –