可以为尚未定义的 属性 取消设置 var 吗?

Is it ok to unset a var for a property not yet defined?

假设我在 macrodef:

中有这样的东西
<var name="someName" unset="true" />
<property name="someName" value="someValue" /> 

这似乎可行,但在设置 var 之前取消设置它是定义的行为吗?我是 ant 的新手,还没有找到任何可以证明这种情况的东西。

是的,如果未设置变量(无非是 mutable 属性),则可以取消设置。取消设置变量归结为从包含属性列表的散列 table 中删除条目。来自 Hashtable#remove(Object key) 的文档:

Removes the key (and its corresponding value) from this hashtable. This method does nothing if the key is not in the hashtable.