Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
DroolsÄÚ²¿¹¦ÄÜÏêϸ½éÉÜ
 
  3430  次浏览      27
 2018-3-26 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcsdn£¬Drools£¨JBoss Rules £©¾ßÓÐÒ»¸öÒ×ÓÚ·ÃÎÊÆóÒµ²ßÂÔ¡¢Ò×ÓÚµ÷ÕûÒÔ¼°Ò×ÓÚ¹ÜÀíµÄ¿ªÔ´ÒµÎñ¹æÔòÒýÇæ£¬·ûºÏÒµÄÚ±ê×¼£¬Ëٶȿ졢ЧÂʸߡ£

¹æÔòÎļþ

ÔÚ Drools µ±ÖУ¬Ò»¸ö±ê×¼µÄ¹æÔòÎļþ¾ÍÊÇÒ»¸öÒÔ¡°.drl¡±½áβµÄÎı¾Îļþ£¬ÓÉÓÚËüÊÇÒ»¸ö±ê×¼µÄÎı¾Îļþ£¬ËùÒÔ¿ÉÒÔͨ¹ýһЩ¼Çʱ¾¹¤¾ß¶ÔÆä½øÐдò¿ª¡¢²é¿´ºÍ±à¼­¡£¹æÔòÊÇ·ÅÔÚ¹æÔòÎļþµ±Öеģ¬Ò»¸ö¹æÔòÎļþ¿ÉÒÔ´æ·Å¶à¸ö¹æÔò£¬³ý´ËÖ®Í⣬ÔÚ¹æÔòÎļþµ±Öл¹¿ÉÒÔ´æ·ÅÓû§×Ô¶¨ÒåµÄº¯Êý¡¢Êý¾Ý¶ÔÏó¼°×Ô¶¨Òå²éѯµÈÏà¹ØÔÚ¹æÔòµ±ÖпÉÄÜ»áÓõ½µÄһЩ¶ÔÏó¡£

Ò»¸ö±ê×¼µÄ¹æÔòÎļþµÄ½á¹¹´úÂëÇåµ¥:

³ýpackageÖ®Í⣬ÆäËü¶ÔÏóÔÚ¹æÔòÎļþÖеÄ˳ÐòÊÇÈÎÒâµÄ£¬Ò²¾ÍÊÇ˵ÔÚ¹æÔòÎļþµ±ÖбØÐëÒªÓÐÒ»¸öpackageÉùÃ÷£¬Í¬Ê±package ÉùÃ÷±ØÐëÒª·ÅÔÚ¹æÔòÎļþµÄµÚÒ»ÐУ¬¹æÔòÎļþµ±ÖеÄpackageºÍJavaÓïÑÔµ±ÖеÄpackageÓÐÏàËÆÖ®´¦£¬µ«²»ÍêÈ«Ïàͬ¡£ÔÚJavaµ±ÖÐpackageµÄ×÷ÓÃÊÇÓÃÀ´¶Ô¹¦ÄÜÏàËÆ»òÏà¹ØµÄÎļþ·ÅÔÚͬһ¸öpackageϽøÐйÜÀí£¬ÕâÖÖpackage¹ÜÀí¼ÈÓÐÎïÀíÉÏJavaÎļþλÖõĹÜÀíÒ²ÓÐÂß¼­ÉϵÄÎļþλÖõĹÜÀí£¬ÔÚJavaµ±ÖÐÕâÖÖͨ¹ýpackage¹ÜÀíÎļþÒªÇóÔÚÎļþλÖÃÔÚÂß¼­ÉÏÓëÎïÀíÉÏÒª±£³ÖÒ»Ö£»µ«ÔÚDrools µÄ¹æÔòÎļþµ±ÖÐpackage ¶ÔÓÚ¹æÔòÎļþÖйæÔòµÄ¹ÜÀíÖ»ÏÞÓÚÂß¼­ÉϵĹÜÀí£¬¶ø²»¹ÜÆäÔÚÎïÀíÉϵÄλÖÃÈçºÎ£¬ÕâµãÊǹæÔòÓëJavaÎļþµÄpackageµÄÇø±ð¡£

¶ÔÓÚͬһpackageϵÄÓû§×Ô¶¨Ò庯Êý¡¢×Ô¶¨ÒåµÄ²éѯµÈ£¬²»¹ÜÕâЩº¯ÊýÓë²éѯÊÇ·ñÔÚͬһ¸ö¹æÔòÎļþÀïÃæ£¬ÔÚ¹æÔòÀïÃæÊÇ¿ÉÒÔÖ±½ÓʹÓõģ¬ÕâµãºÍ Java µÄͬһpackageÀïµÄ Java Ààµ÷ÓÃÊÇÒ»ÑùµÄ¡£

¹æÔòÓïÑÔ

Ò»¸ö¹æÔò¿ÉÒÔ°üº¬Èý¸ö²¿·Ö£ºÎ¨ÓÐattributes²¿·ÖÊÇ¿ÉÑ¡µÄ£¬ÆäËû¶¼ÊDZØÌîÐÅÏ¢£º

¶¨Ò嵱ǰ¹æÔòÖ´ÐеÄһЩÊôÐԵȣ¬±ÈÈçÊÇ·ñ¿É±»Öظ´Ö´ÐС¢¹ýÆÚʱ¼ä¡¢ÉúЧʱ¼äµÈ

Ìõ¼þ²¿·Ö£º

¼´LHS£¬¶¨Ò嵱ǰ¹æÔòµÄÌõ¼þ£¬Èçwhen Message(); Åжϵ±Ç°workingMemoryÖÐÊÇ·ñ´æÔÚMessage¶ÔÏó¡£

½á¹û²¿·Ö£º

¼´RHS£¬ÕâÀï¿ÉÒÔдÆÕͨjava´úÂ룬¼´µ±Ç°¹æÔòÌõ¼þÂú×ãºóÖ´ÐеIJÙ×÷£¬¿ÉÒÔÖ±½Óµ÷ÓÃFact¶ÔÏóµÄ·½·¨À´²Ù×÷Ó¦ÓÃ
Ìõ¼þ²¿·Ö£º

¼þ²¿·ÖÓÖ±»³ÆÖ®Îª Left Hand Side£¬¼ò³ÆÎª LHS£¬ÏÂÎĵ±ÖУ¬Èç¹ûûÓÐÌØ±ðÖ¸³ö£¬ÄÇôËù˵µÄ LHS ¾ùÖ¸¹æÔòµÄÌõ¼þ²¿·Ö£¬ÔÚÒ»¸ö¹æÔòµ±ÖÐ when Óë then ÖмäµÄ²¿·Ö¾ÍÊÇ LHS ²¿·Ö¡£ÔÚ LHS µ±ÖУ¬¿ÉÒÔ°üº¬ 0~n ¸öÌõ¼þ£¬Èç¹û LHS ²¿·Öû¿ÕµÄ»°£¬ÄÇôÒýÇæ»á×Ô¶¯Ìí¼ÓÒ» ¸ö eval(true)µÄÌõ¼þ£¬ÓÉÓÚ¸ÃÌõ¼þ×ÜÊÇ·µ»Ø true£¬ËùÒÔ LHS Ϊ¿ÕµÄ¹æÔò×ÜÊÇ·µ»Ø true¡£

LHS ²¿·ÖÊÇÓÉÒ»¸ö»ò¶à¸öÌõ¼þ×é³É£¬Ìõ¼þÓÖ³ÆÖ®Îª pattern£¨Æ¥Åäģʽ£©£¬¶à¸ö pattern Ö®¼äÓÿÉÒÔʹÓà and »ò or À´½øÐÐÁ¬½Ó£¬Í¬Ê±»¹¿ÉÒÔʹÓÃСÀ¨ºÅÀ´È·¶¨ pattern µÄÓÅÏȼ¶

¶ÔÓÚÒ»¸ö pattern À´Ëµ¡°°ó¶¨±äÁ¿Ãû¡±ÊÇ¿ÉÑ¡µÄ£¬Èç¹ûÔÚµ±Ç°¹æÔòµÄ LHS ²¿·ÖµÄÆäËüµÄ pattern ÒªÓõ½Õâ¸ö¶ÔÏó£¬ÄÇô¿ÉÒÔͨ¹ýΪ¸Ã¶ÔÏóÉ趨һ¸ö°ó¶¨±äÁ¿ÃûÀ´ÊµÏÖ¶ÔÆäÒýÓ㬶ÔÓڰ󶨱äÁ¿µÄÃüÃû£¬Í¨³£µÄ×÷·¨ÊÇΪÆäÌí¼ÓÒ»¸ö¡°$¡±·ûºÅ×÷Ϊǰ׺£¬ÕâÑù¿ÉÒԺܺõÄÓë FactµÄÊôÐÔÇø±ð¿ªÀ´£»°ó¶¨±äÁ¿²»½ö¿ÉÒÔÓÃÔÚ¶ÔÏóÉÏ£¬Ò²¿ÉÒÔÓÃÔÚ¶ÔÏóµÄÊôÐÔÉÏÃæ£¬ÃüÃû·½·¨Óë¶ÔÏóµÄÃüÃû·½·¨Ïàͬ£»¡°field Ô¼Êø¡±ÊÇÖ¸µ±Ç°¶ÔÏóÀïÏà¹Ø×ֶεÄÌõ¼þÏÞÖÆ£¬

¹æÔòÖÐ LHS ²¿·Öµ¥¸öpattern (ģʽ) µÄÇéÐΡ£

¹æÔòÖС°$customer¡±ÊǾÍÊÇÒ»¸ö°ó¶¨µ½ Customer ¶ÔÏóµÄ¡°°ó¶¨±äÁ¿Ãû¡±£¬¸Ã¹æÔòµÄ LHS ²¿·Ö±íʾ£¬ÒªÇó Fact ¶ÔÏó±ØÐëÊÇ Customer ÀàÐÍ£¬¸ÃÌõ¼þÂú×ãÁËÄÇôËüµÄ LHS »á·µ»Ø true¡£

ÏÂÃæÕâÖÖд·¨¾ÍÊǰüº¬Á½ÖÖpattern(ģʽ) £º

rule "rule1"
when
$customer:Customer(age>20,gender=='male')
Order(customer==$customer,price>1000)
then
....
end

¼òµ¥ËµÃ÷Ò»ÏÂÉÏÃæµÄ´úÂë

µÚÒ»¸ö£ºpattern(ģʽ) ÓÐÈý¸öÔ¼Êø

1¡¢ ¶ÔÏó ÀàÐͱØÐëÊÇ Cutomer£»

2¡¢Cutomer µÄ age Òª´óÓÚ 20

3¡¢Cutomer µÄ gender ÒªÊÇ male

µÚ¶þ¸ö:pattern(ģʽ) ÓÐÈý¸öÔ¼Êø

1¡¢ ¶ÔÏóÀàÐͱØÐëÊÇ Order;

2¡¢ Order ¶ÔÓ¦µÄ Cutomer ±ØÐëÊÇÇ°ÃæµÄÄǸö Customer

3¡¢ µ±Ç°Õâ¸ö Order µÄprice Òª´óÓÚ 1000

ÕâÁ½¸ö pattern ûÓзûºÅÁ¬½Ó£¬ÔÚ Drools µ±ÖÐÔÚ pattern ÖÐûÓÐÁ¬½Ó·ûºÅ£¬ÄÇô¾ÍÓà and À´×÷ΪĬÈÏÁ¬½Ó£¬ËùÒÔÔڸùæÔòµÄ LHS ²¿·Ö ÖÐÁ½¸öpattern(ģʽ)Ö»Óж¼Âú×ãÁ˲Ż᷵»Ø true¡£Ä¬ÈÏÇé¿öÏ£¬Ã¿ÐпÉÒÔÓá°;¡±À´×÷Ϊ½áÊø·û£¨ºÍ Java µÄ½áÊøÒ»Ñù£©£¬µ±È»ÐÐβҲ¿ÉÒÔ²»¼Ó¡°;¡±½áβ¡£

Ô¼ÊøÁ¬½Ó

¶ÔÓÚ¶ÔÏóÄÚ²¿µÄ¶à¸öÔ¼ÊøµÄÁ¬½Ó£¬¿ÉÒÔ²ÉÓá°&&¡±£¨and£©¡¢¡°||¡±(or)ºÍ¡°,¡±(and)À´ÊµÏÖ

ÕâÈý¸öÁ¬½Ó·ûºÅÈç¹ûûÓÐÓÃСÀ¨ºÅÀ´ÏÔʾµÄ¶¨ÒåÓÅÏȼ¶µÄ»°£¬ÄÇôËüÃǵÄÖ´ÐÐ˳ÐòÊÇ£º¡°&&¡±£¨and£©¡¢¡°||¡±(or)

±íÃæÉÏ¿´¡°,¡±Óë¡°&&¡±¾ßÓÐÏàͬµÄº¬Ò壬µ«ÊÇÓÐÒ»µãÐèҪעÒ⣬¡°,¡±Óë¡°&&¡±ºÍ¡°||¡±²»ÄÜ»ìºÏʹÓã¬Ò²¾ÍÊÇ˵ÔÚÓС°&&¡±»ò¡°||¡±³öÏÖµÄ LHS µ±ÖУ¬ÊDz»¿ÉÒÔÓС°£¬¡±Á¬½Ó·û³öÏֵ쬷´Ö®ÒàÈ»

DroolsÌṩÁËÊ®¶þÖÐÀàÐͱȽϲÙ×÷·û£ºÈç¹û½øÐг£Á¿±È½Ï£¬±ØÐëͨ¹ýeval(Ìõ¼þ)»òÕß¶ÔÏóÒýÓñȽ϶ÔÏóÊôÐÔ£¬²»Äܵ¥¶ÀʹÓã¬ÕâÓï·¨ÓëjavaÊÇÒ»ÑùµÄ

>|<£¬>=|<=£¬==|!= Õ⼸¸ö²»¶à˵À²

contains | not contains

memberOf | not memberOf

matches | not matches

ÏÂÃæËµÃ÷һϺóÃæ6Öֵĺ¬Òâ

contains£º±È½Ï²Ù×÷·û contains ÊÇÓÃÀ´¼ì²éÒ»¸ö Fact ¶ÔÏóµÄij¸ö×ֶΣ¨¸Ã×Ö¶ÎÒªÊÇÒ»¸ö Collection »òÊÇÒ»¸ö Array ÀàÐ͵ĶÔÏó£©ÊÇ·ñ°üº¬Ò»¸öÖ¸¶¨µÄ¶ÔÏó

Óï·¨¸ñʽ£º

  1. Object( field[Collection/Array] contains value)

Contains.drlд·¨

package rules.testwrod
import com.drools.test.Person
import com.drools.test.School
rule test001
when
$s:School();
$p:Person(name contains $s.name);
then
System.out.println("¹§Ï²Ä㣬³É¹¦µÄʹÓÃÁË contains");
end

JavaAPIд·¨

package com.drools.test;

import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
import org.kie.api.runtime.rule.FactHandle;
public class TestWrod{
public static void main(String[] args){
KieServices kss = KieServices.Factory.get();
KieContainer kc = kss.getKieClasspathContainer();
KieSession ks =kc.newKieSession("session");
School school=new School();
school.setCount(50);
school.setName("Ò»°à");
Person person=new Person("Ò»°à",30);
FactHandle insert = ks.insert(person);
ks.insert(school);
int count = ks.fireAllRules();
System.out.println("×ÜÖ´ÐÐÁË"+count+"Ìõ¹æÔò");
ks.dispose();
}
}

containsÖ»ÄÜÓÃÓÚ¶ÔÏóµÄij¸ö Collection/ArrayÀàÐ͵Ä×Ö¶ÎÓëÁíÍâÒ»¸öÖµ½øÐбȽϣ¬×÷Ϊ±È½ÏµÄÖµ¿ÉÒÔÊÇÒ»¸ö¾²Ì¬µÄÖµ£¬Ò²¿ÉÒÔÊÇÒ»¸ö±äÁ¿(°ó¶¨±äÁ¿»òÕßÊÇÒ»¸öglobal¶ÔÏó)£¬ËµµÄ¿ÉÄÜÓеãÂé·³£¬Ð¡±àÔÚÕâÀï¸ø´ó¼ÒÔÙͨË×µÄ˵һÏ£¬Æäʵcontains¾ÍÊÇÓÃÀ´±È½ÏÊôÐÔÖµÊÇ·ñÓë±»±È½ÏÖµÏàͬ£¬µ«ÊÇÕâÁ½¸öÊôÐÔÃûÊÇÏàͬµÄ¡£

not contains£ºnot contains×÷ÓÃÓë contains ×÷ÓÃÏà·´£¬not containsÊÇÓÃÀ´ÅжÏÒ»¸öFact¶ÔÏóµÄij¸ö×ֶΣ¨Collection/ArrayÀàÐÍ£©ÊDz»Êǰüº¬Ò»¸öÖ¸¶¨µÄ¶ÔÏó£¬ºÍ contains±È½Ï·ûÏàͬ£¬ËüÒ²Ö»ÄÜÓÃÔÚ¶ÔÏóµÄ fieldµ±ÖУ¬¾ÙÀý˵Ã÷

Contains.drlд·¨

package rules.testwrod
import com.drools.test.Person
import com.drools.test.School
rule test001
when
$s:School();
$p:Person(age not contains $s.count);
then
System.out.println("¹§Ï²Ä㣬³É¹¦µÄʹÓÃÁËnot contains");
end

JavaAPIд·¨

package com.drools.test;

import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
import org.kie.api.runtime.rule.FactHandle;
public class TestWrod{
public static void main(String[] args){
KieServices kss = KieServices.Factory.get();
KieContainer kc = kss.getKieClasspathContainer();
KieSession ks =kc.newKieSession("session");
School school=new School();
school.setCount(50);
school.setName("Ò»°à");
Person person=new Person("Ò»°à",30);
FactHandle insert = ks.insert(person);
ks.insert(school);
int count = ks.fireAllRules();
System.out.println("×ÜÖ´ÐÐÁË"+count+"Ìõ¹æÔò");
ks.dispose();
}
}

½á¹ûÒ»¶¨ÊÇÎÒÃÇÏëÒªµÄ£¬ÊÇÒòΪPersonÖеÄÊôÐÔÊÇage¶øSchoolµÄÊôÐÔÊÇcount£¬¾ÍËãÖµÏàͬ£¬ÊôÐÔÃû²»Í¬ ÔÚnot containsÏÂÊdzÉÁ¢µÄ¡£

memberOf£ºmemberOfÊÇÓÃÀ´ÅжÏij¸öFact¶ÔÏóµÄij¸ö×Ö¶ÎÊÇ·ñÔÚÒ»¸ö¼¯ºÏ£¨Collection/Array£©µ±ÖУ¬Ó÷¨Óë containsÓÐЩÀàËÆ£¬µ«Ò²Óв»Í¬

memberOfµÄÓï·¨ÈçÏ£º

Object(fieldName memberOf value[Collection/Array])

¿ÉÒÔ¿´µ½ memberOfÖм¯ºÏÀàÐ͵ÄÊý¾ÝÊÇ×÷Ϊ±»±È½ÏÏîµÄ£¬¼¯ºÏÀàÐ͵ÄÊý¾Ý¶ÔÏóλÓÚmemberOf ²Ù×÷·ûºóÃæ£¬Í¬Ê±ÔÚÓà memberOf±È½Ï²Ù×÷·ûʱ±»±È½ÏÏîÒ»¶¨ÒªÊÇÒ»¸ö±äÁ¿(°ó¶¨±äÁ¿»òÕßÊÇÒ»¸ö global¶ÔÏó)£¬¶ø²»ÄÜÊÇÒ»¸ö¾²Ì¬Öµ¡£ÈçºÎ¸øÈ«¾Ö±äÁ¿¸³Öµ:ksession.setGlobal("list",list);¾ÙÀý˵Ã÷

memberOf.drlÎļþ

package rules.testwrod

import com.drools.test.Person

global java.util.List list;
rule test001
when
$p:Person(name memberOf list);
then
System.out.println("¹§Ï²Ä㣬³É¹¦µÄʹÓÃÁË memberOf");
end

JavaAPIд·¨

package com.drools.test;

import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
import org.kie.api.runtime.rule.FactHandle;
public class TestWrod{
public static void main(String[] args){
KieServices kss = KieServices.Factory.get();
KieContainer kc = kss.getKieClasspathContainer();
KieSession ks =kc.newKieSession("session");
List list=new ArrayList();
list.add("ÕÅÈý");
list.add("ÀîËÄ");
list.add("ÍõÎå");
list.add("ÕÔÁù");
Person person=new Person("ÕÅÈý",50);
ks.setGlobal("list",list);
FactHandle insert = ks.insert(person);
ks.insert(school);
int count = ks.fireAllRules();
System.out.println("×ÜÖ´ÐÐÁË"+count+"Ìõ¹æÔò");
ks.dispose();
}
}

½á¹û¿Ï¶¨ÊÇÎÒÃÇÏëÒªµÄÁË


not memberOf£º¸Ã²Ù×÷·ûÓë memberOf ×÷ÓÃǢǢÏà·´£¬ÊÇÓÃÀ´ÅжÏFact¶ÔÏóµ±ÖÐij¸ö×Ö¶ÎÖµÊDz»ÊÇÖÐij¸ö¼¯ºÏ£¨Collection/Array£©µ±ÖС£Ð¡±àÕâÀï¾Í²»¸ø¶ÁÕß¾ÙÀý˵Ã÷£¬ÓÐÐËȤµÄ¶ÁÕß¿ÉÒÔ×Ô¼º³¢ÊÔһϡ£

matches£ºmatches ÊÇÓÃÀ´¶Ôij¸ö Fact µÄ×Ö¶ÎÓë±ê×¼µÄ Java ÕýÔò±í´ïʽ½øÐÐÏàËÆÆ¥Å䣬±»±È½ÏµÄ×Ö·û´®¿ÉÒÔÊÇÒ»¸ö±ê×¼µÄ Java ÕýÔò±í´ïʽ£¬ÓÐÒ»µãС±àÒªÌáÐѶÁÕß×¢Ò⣬ÄǾÍÊÇÕýÔò±í´ïʽ×Ö·û´®µ±Öв»Óÿ¼ÂÇ¡°\¡±µÄתÒåÎÊÌâ¡£

Óï·¨ÈçÏ£º

Object(fieldName matches ¡°ÕýÔò±í´ïʽ¡±)

¾ÙÀý˵Ã÷

Matches.drl

package rules.testwrod

import com.drools.test.Person

rule test001
when
$p:Person(name matches "ÕÅ.*");
then
System.out.println("¹§Ï²Ä㣬³É¹¦µÄʹÓÃÁË matches");
end

JavaAPIд·¨

package com.drools.test;

import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
import org.kie.api.runtime.rule.FactHandle;
public class TestWrod{
public static void main(String[] args){
KieServices kss = KieServices.Factory.get();
KieContainer kc = kss.getKieClasspathContainer();
KieSession ks =kc.newKieSession("session");
Person person=new Person("ÕÅÈý",30);
FactHandle insert = ks.insert(person);
ks.insert(school);
int count = ks.fireAllRules();
System.out.println("×ÜÖ´ÐÐÁË"+count+"Ìõ¹æÔò");
ks.dispose();
}
}

½á¹ûÈçÏ£º

С±àÕâÀï²¹³ä¼¸µã£º¼òµ¥À´Ëµ¾ÍÊÇÄ£ºý²éѯ,Óï·¨ÊDz»ÄÜÊÇ ¡°*.Èý¡±ÕâÑùµÄÓï·¨ÊÇ´íÎóµÄ¡£

¸Ã¹æÔòÊÇÓÃÀ´²éÕÒËùÓÐPerson¶ÔÏóµÄ name ÊôÐÔÊDz»ÊÇÒÔ¡°ÕÅ¡±×Ö¿ªÍ·£¬Èç¹ûÂú×ãÕâÒ»Ìõ¼þÄÇô¾Í½«¸Ã Person¶ÔÏóµÄ name ÊôÐÔ´òÓ¡³öÀ´

not matches:Óëmatches ×÷ÓÃÏà·´£¬ÊÇÓÃÀ´½«Ä³¸öFactµÄ×Ö¶ÎÓëÒ»¸öJava±ê×¼ÕýÔò±í´ïʽ½øÐÐÆ¥Å䣬¿´ÊDz»ÊÇÄÜÓëÕýÔò±í´ïʽƥÅä¡£ С±àÕâÀï¾Í²»¶àд×öÀý×ÓÁË£¬½¨Òé¶ÁÕßÒª×Ô¼ºÊÔһϣ¬ÌåÑéһϽá¹û

Óï·¨À©Õ¹²¿·Ö

·ÃÎÊListÊý¾Ý½á¹¹

$customer.accounts[3]µÈͬÓÚ$customer.getAccounts(3)

·ÃÎÊMapÊý¾Ý½á¹¹

$customerMap["123"]µÈͬÓÚ$customerMap.get["123"]

 

   
3430 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Java΢·þÎñÐÂÉú´úÖ®Nacos
ÉîÈëÀí½âJavaÖеÄÈÝÆ÷
JavaÈÝÆ÷Ïê½â
Java´úÂëÖÊÁ¿¼ì²é¹¤¾ß¼°Ê¹Óð¸Àý
Ïà¹ØÎĵµ

JavaÐÔÄÜÓÅ»¯
Spring¿ò¼Ü
SSM¿ò¼Ü¼òµ¥¼òÉÜ
´ÓÁ㿪ʼѧjava±à³Ì¾­µä
Ïà¹Ø¿Î³Ì

¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
Java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JAVAÐéÄâ»úÔ­ÀíÆÊÎö