2017-02-22 49 views
0

我正在學習Java和Drools,所以我可以編輯現有的代碼庫,我遇到了一些我認爲只是分配變量/對象的語法,但我不確定,我會很感激一些清晰度和洞察力,然後我錯誤地申請並依靠它。Java Drools使用冒號進行對象分配?

RULE "Rule1" 

    WHEN 
     result : Result() 
     policy : Policy() 

    THEN 
     logger.info("Running Rule1"); 
     retract(result); 
END 

這是「XXX:XXX()」位我是不確定.. 我嘗試搜索,但我最終靜態聲明等

是一樣的「XXX =新XXX();」或「xxx:xxx();」 ?

我以前的編碼經驗是用PHP和C#,謝謝。

+0

這是一個基本主題,在嘗試理解任何代碼之前,您需要先學習Drools手冊中的說明。另外,在觸摸代碼庫中的任何東西之前,理解(至少)基本的Java是必不可少的。 - 並且,不,變量綁定('xxx:...')和模式('... Xyz()')都不是「靜態聲明」。 – laune

+0

我很欣賞有一個「正確的方式來做到這一點」,但我處於一個不需要任何知識轉移就能完成這項工作的位置,而且我的時間限制已經到了。我對構建和運行環境有足夠的理解,但是我需要幫助的語言只是一些細微差別,因爲向後的工作並不像工作向前那麼簡單。 靜態聲明評論是因爲當我搜索這個,我得到的答覆談論雙冒號或三元。 我在尋求幫助,而不是講座,謝謝 – Gravious

+0

您是否希望我複製粘貼手冊中的文本? – laune

回答

0

模式元素是最重要的條件元素。它可以匹配插入工作存儲器的每個事實。

一個模式包含零個或多個約束,並有一個可選的模式綁定。

[patternBinding] 圖案類型 [約束]

在其最簡單的形式,沒有約束,圖案針對給定類型的事實相匹配。在以下的情況下,類型是Person,這意味着所述圖案將匹配對在工作存儲器中的所有的Person對象:

Person() 

對於參照匹配對象,使用一個圖案結合可變如$頁。 (在「$」是不是強制性的,只是一個約定。)

$p: Person() 

屬性可以被綁定到一個變量:

Person($firstAge : age) // binding 

就指出,「結合」是不是「轉讓」;一個「綁定變量」不是一個「變量」,因爲它在C#或PHP中是已知的。

+0

謝謝,多數民衆贊成我需要:) – Gravious