例如:
i)使用值
Util.arrayCopyNonAtomic(buffer,(short)(offset+20), keyTrack, PARAMETER_OFFSET, **(short) 6**);
ii)使用最终变量
final static short length=6;
Util.arrayCopyNonAtomic(buffer,(short)(offset+20), keyTrack, PARAMETER_OFFSET, **length**);
哪一个更适合javacard开发? (我只想说我以后会使用很多“6”)
答案 0 :(得分:2)
如果与常量相关,则使用final static
会更好。两种情况下生成的二进制文件的大小相同。但是,ii)在代码可读性方面具有优势,并且更易于维护(如果您需要更改该值,则只需在一个位置进行更改)。
注意:为避免混淆,变量写为camelCase,而使用UPPER_CASE写入常量(最终静态)。例如:
Util.arrayCopyNonAtomic(buffer, (short) (offset + 20),
keyTrack, PARAMETER_OFFSET, LEN_OF_KEY);
答案 1 :(得分:0)
最终和静态以及基本类型的字段由Java编译器内联,如Java Language Specification, section 13.4.9中所述。这与JavaCard无关,因为它甚至在转换为JavaCard二进制格式(CAP文件)之前就已经发生了。
因此,最终的二进制代码将完全相同。