打开"Wrap always"将无效,因为它变为:
@Annotation1
public
@Annotation2
String something() {
...
}
Run Code Online (Sandbox Code Playgroud)
并且"不包裹"变成:
@Annotation1 public @Annotation2 String something() {
...
}
Run Code Online (Sandbox Code Playgroud)
"如果长时间换行"和"长时间砍掉":
@Annotation1 public @Annotation2
String something() {
...
}
Run Code Online (Sandbox Code Playgroud)
这就是我要的:
@Annotation1
public @Annotation2 String something() {
...
}
Run Code Online (Sandbox Code Playgroud)
其他类似的问题与我正在寻找的格式不符,并说选择上面列出的一个对我不起作用的选项.
有没有人知道如何让格式化程序以这种方式运行?一个插件可能吗?
使用 Groovy Binding 从主控制器执行脚本并尝试传递自定义对象时,出现标题中提到的错误。
Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'custompackage.CustomClass@60099951' with class 'custompackage.CustomClass' to class 'custompackage.CustomClass'
Run Code Online (Sandbox Code Playgroud)
这是相关的代码:
// Controller.groovy
import custompackage.CustomClass
CustomClass test = new CustomClass()
def binding = new Binding()
def engine = new GroovyScriptEngine('./src')
binding.setProperty("test", test)
engine.run("CustomScript.groovy", binding)
Run Code Online (Sandbox Code Playgroud)
上面运行的文件:
// CustomScript.groovy
import custompackage.CustomClass
CustomClass t
if(!binding.variables.containsKey("test")){
t = new CustomClass()
} else {
t = test
}
Run Code Online (Sandbox Code Playgroud)
CustomClass t为了在我的 IDE 中自动完成,我在开始时定义了。运行时,def t它工作正常。
由于异常(以及对象的进一步打印),我知道对象被正确传递
错误发生在 t = test
为什么 Groovy 试图将相同类型的对象强制转换为它的类型,然后却失败了?是否有一个修复程序仍然可以让我保持静态类型t?
谢谢!