Arrays Javacard-Arraycompare问题

Arrays Javacard-Arraycompare问题,arrays,compare,javacard,Arrays,Compare,Javacard,我想使用Javacard框架比较2字节数组 第一个数组是预定义的: static byte[]PasswortA={'a','b','c','d'} 第二个数组将通过命令行输入: case (byte) 0x03: ///send D003000004|abcd GetPassword = new byte[buffer[ISO7816.OFFSET_LC]]; Util.arrayCopy(buffer, ISO7816.OFFSET_CDATA, GetPasswor

我想使用Javacard框架比较2字节数组

第一个数组是预定义的:
static byte[]PasswortA={'a','b','c','d'}

第二个数组将通过命令行输入:

case (byte) 0x03: ///send D003000004|abcd
    GetPassword = new byte[buffer[ISO7816.OFFSET_LC]];
        Util.arrayCopy(buffer, ISO7816.OFFSET_CDATA, GetPassword, (short) 0, lc);
        Util.arrayCopy(GetPassword, (short) 0, buffer, (short) 0, lc);
        apdu.setOutgoingAndSend((short) 0, (short) lc);
输出:
/发送D003000004| abcd
=>D0 03 00 04 61 62 63 64…abcd
(349416 nsec)

问题是我试图比较switch case函数中的数组,但没有将输入字节数组存储在单独的函数中。这样存储后:
private void compareLogin(APDU-APDU,字节[]缓冲区,短lc){
字节a=Util.arrayCompare(PasswortA,(short)0,GetPassword,(short)0,lc);
缓冲区[0]=a;
apdu.setOutgoingAndSend((短)0,(短)lc);
}

比较功能的工作原理如文档中所述


谢谢你的帮助

如何/在何处声明
GetPassword
?在计算
大小写(字节)0x03:
大小写(字节)0x05:
时,
lc
的值是多少?GetPassword声明如下:
private byte[]GetPassword
byte[]GetPassword=新字节[buffer[ISO7816.OFFSET_LC]]。lc的值总是
short lc=buffer[ISO7816.OFFSET_lc]
@owlstead从
PasswortA
中删除
static
无效。谢谢。@user3750185您能在这里添加完整的代码吗。Thanks@user3750185如果不知道您在哪里声明/设置与您提供的代码相关的变量,那么这并没有真正的帮助。因此,您忘记了发送存储的结果。。。别忘了接受你自己的答案:)@David我们真的不知道,因为OP提供了一个“答案”,但没有提供足够的信息(代码部分)来描述/显示实际问题。所以:没用的回答。
case (byte) 0x05: ///send D005000001
if( (byte) 0 == Util.arrayCompare(PasswortA, (short) 0,  GetPassword, (short) 0, lc ) ){
                buffer[0] = '1';
            } else {
                buffer[0] = '0';            
            }