我需要将一个整数(表示x.509 KeyUsage掩码)转换为布尔数组,在Java中我有以下可用的函数,它工作正常:
public boolean[] getKeyUsage()
{
int mask = 144; // Integer.parseInt(testRunner.testCase.getPropertyValue("keyUsage"));
byte[] bytes = new byte[] { (byte)(mask & 0xff), (byte)((mask & 0xff00) >> 8) };
boolean[] keyUsage = new boolean[9];
for (int i = 0; i != 9; i++)
{
keyUsage[i] = (bytes[i / 8] & (0x80 >>> (i % 8))) != 0;
}
return keyUsage;
}
在这种情况下(144),它应该返回
keyUsage = {boolean [9] @ 976} [0] = true [1] = false [2] = false [3] = true [4] = false [5] = false [6] = false [7] = false [8] = false
在Groovy中运行时,我得到了
org.codehaus.groovy.control.MultipleCompilationErrorsException:startup failed:Script6.groovy:22:expecting'}',found','@ line 22,column 56.w byte [] {(byte)(mask&0xff), (byte)((^ org.codehaus.groovy.syntax.SyntaxException:expecting'}',found','@ line 22,column 56. at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:140 )org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:108)org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:236)at org.codehaus.groovy.control.CompilationUnit $ 1 .call(CompilationUnit.java:162)org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:912)org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:574)at org . 在groovy.lang.GroovyClassLoad的org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:527)的codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:550)位于groovy.lang.GroovyShell.parseClass(GroovySlass.java:613)的groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:258)中的ge.doParseClass(GroovyClassLoader.java:279)位于groovy.lang.GroovyShell.parse(GroovyShell) .java:625)at groovy.lang.GroovyShell.parse(GroovyShell.java:652)at groovy.lang.GroovyShell.parse(GroovyShell.java:643)at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine . 编译(SoapUIGroovyScriptEngine.java:148)at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:93)at
我在Groovy中总共n00b,很抱歉,如果我遗漏了一些明显的东西
2 回答
我认为这会得到你需要的结果:
您得到的错误是因为您在Groovy中构造数组:
不是
new byte[] { 1, 2 }
Java方式 . 但我不相信你需要字节数组......在Groovy中,以下内容无效:
以下内容有效:
如果您愿意,可以消除演员阵容:
如果您愿意,也可以删除分号 .
我希望有所帮助 .