谁能解释为什么第一个示例有效而第二个示例不起作用?
test {
jvmArgs '-Xdebug',
'-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=4000'
}
test {
jvmArgs.add('-Xdebug')
jvmArgs.add('-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=4000')
}
因为在第二个例子中this http://gradle.org/docs/current/javadoc/org/gradle/api/tasks/testing/Test.html#getJvmArgs()方法被调用。您获取列表并对其进行修改,但更改不会反映到设置中 -只读访问。在第一个例子中this http://gradle.org/docs/current/javadoc/org/gradle/api/tasks/testing/Test.html#setJvmArgs(java.lang.Iterable)调用方法并设置传递的参数。
这是解释,返回列表的副本(出于安全原因 - 可变类型应始终作为副本返回)
public List<String> getJvmArgs() {
List<String> args = new ArrayList<String>();
for (Object extraJvmArg : extraJvmArgs) {
args.add(extraJvmArg.toString());
}
return args;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)