2016-10-25 147 views
0

我在這裏指樣本:https://ant.apache.org/manual/tutorial-tasks-filesets-properties.html螞蟻:螞蟻如何找到屬性setter方法屬性

import org.apache.tools.ant.BuildException; 

public class Find extends Task { 

    private String property; 
    private String value; 
    private String print; 

    public void setProperty(String property) { 
     this.property = property; 
    } 

    // setter for value and print 

    public void execute() { 
     if (print != null) { 
      String propValue = getProject().getProperty(print); 
      log(propValue); 
     } else { 
      if (property == null) throw new BuildException("property not set"); 
      if (value == null) throw new BuildException("value not set"); 
      getProject().setNewProperty(property, value); 
     } 
    } 
} 

樣品延伸的Ant任務建立一個自定義的任務。給出的螞蟻任務腳本

<find property="test" value="test-value"/> 
    <find print="test"/> 

該腳本正在設置幾個屬性「屬性」和「打印」的值。我的問題是,Ant如何確定它必須調用「setProperty」方法來設置「property」屬性的值?基本上,Ant如何確定類需要調用哪個方法?

回答

0

Writing Your Own Task

對於每個屬性,寫setter方法。 setter方法必須是一個採用單個參數的公共無效方法。 方法的名稱必須以set開頭,後面跟着屬性名稱,名稱的第一個字符以大寫字母開頭,其餘以小寫字母*開頭。也就是說,爲了支持一個名爲file的屬性,你可以創建一個方法setFile。

而且從The Life-cycle of a Task

  • ...
  • 這個任務的所有屬性得到通過其相應的setXXX方法設置,則在運行時。
  • ...
  • +0

    謝謝你這麼多。我在想同樣的事情,但需要專家的建議 – Shashi