[英]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.