avi*_*ney 5 groovy gradle build.gradle
我正在创建一个带有自定义扩展名的 gradle 插件:
project.extensions.create("myExtension", MyExtension.class)
Run Code Online (Sandbox Code Playgroud)
MyExtension 看起来像:
class MyExtension {
Set<MyEnum> mySet;
MyEnum myEnum;
}
Run Code Online (Sandbox Code Playgroud)
问题是我无法mySet在 build.gradle 中设置(使用标准 DSL):
myExtension {
myEnum = 'enumField1'
mySet = ['enumField1']
}
Run Code Online (Sandbox Code Playgroud)
我java.lang.String cannot be cast to MyEnum只为 mySet得到一个,字符串到枚举的转换适用于 myEnum ......所以我想知道枚举类型的集合是否可能?有解决办法吗?
我通过使用简单的 java 数组而不是通用数组来使其工作Collection<T>:
class MyExtension {
// string convertion doesn't work
Set<MyEnum> mySet;
// string convertion works fine
MyEnum[] myArray;
MyEnum myEnum;
}
Run Code Online (Sandbox Code Playgroud)
然后可以按预期使用该扩展:
myExtension {
myEnum = 'enumField1'
mySet = ['enumField1']
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你...
| 归档时间: |
|
| 查看次数: |
2357 次 |
| 最近记录: |