gpt4 book ai didi

java - 在 Groovy 中将整数转换为 boolean 数组

转载 作者:行者123 更新时间:2023-12-01 18:33:01 27 4
gpt4 key购买 nike

我需要将整数(表示 x.509 KeyUsage 掩码)转换为 boolean 数组,在 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) at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:108) at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:236) at org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:162) at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:912) at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:574) at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:550) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:527) at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:279) at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:258) at groovy.lang.GroovyShell.parseClass(GroovyShell.java:613) at 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.compile(SoapUIGroovyScriptEngine.java:148) at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:93) at

我在 Groovy 方面完全是个菜鸟,如果我遗漏了一些明显的东西,我很抱歉

最佳答案

我认为这会得到您需要的结果:

boolean[] getKeyUsage( int mask ) {
(7..0).collect { int it ->
( ( mask >> it ) & 1 )
}
}

getKeyUsage( 144 ) == [ true, false, false, true, false, false, false, false ]

您收到的错误是因为您在 Groovy 中构造数组时使用:

byte[] bytes = [ 1, 2 ]

不是 new byte[] { 1, 2 } Java 方式。但我不相信你需要字节数组......

关于java - 在 Groovy 中将整数转换为 boolean 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23294330/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com