繁体   English   中英

我如何在一个类中包含(恒定)原始数据表?

[英]How can i include (constant) primitive data tables in a class?

我有一些需要一堆数据表才能完成工作的类(基本上是基元数组,byte [],short [],int []和float [])。

有些表相对较大。 在代码中初始化它们会炸毁类文件,在某些情况下,它还会超出类初始化程序的大小限制。

目前,我已将数据存储在文件中,并使用getResourceAsStream()读取静态块中的文件。

有没有更好的方法可以使数据与类文件不可分割? 无需从类中单独替换数据。

使用类资源听起来很合适。 它们被滥用有多种用途,但这是一个很好的应用。

也许您可以将数据编码为字符串文字(限制为64K)。

final byte[] table = decode("20,5F,A9,3D,E3.........");

我认为这取决于情况。 例如,对于诸如DES或AES之类的表,表实际上是算法固有的:在我看来,将它们与使用它们的代码分开并不是很有意义。 在这些情况下,表并不是真正的“数据”:它们以更多方式进行编码。

当我编写DES实现时,我仍然确实想让它们摆脱困境,因此我将它们作为包私有类的静态成员包含在同一包中。 您甚至可以执行静态导入,然后使用数组,就好像在您的类中已声明数组一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM