当前位置: 首页 > 知识库问答 >
问题:

通过扩展字节[closed],将typedef字节U8转换为面向对象的Java类

闻人升
2023-03-14

< b >想改进这个问题?通过编辑此帖子添加详细信息并澄清问题。

我想转换:

typedef byte   U8;

要像这样OO:

public final class U8 extends Byte    { 
      U8( byte x  ){
          super(x); 
      } 
}; 

这导致一个错误“类型U8不能子类化最终类字节”。

有没有一个简单的方法来做到这一点?

共有1个答案

吕飞翼
2023-03-14

执行此操作的简单方法是重用其他人的库。本 Q 中有一些线索

    < li >有无符号数类型包装的Java库吗?

你实际想要做的事情(扩展java.lang.Byte)既是不可能的(因为Byte类是最终的),而且在概念上是错误的。由无符号字节和有符号字节表示的数字集是不同的。因此,在概念上,两者都不是另一个的子类型。如果将一个类建模为另一个的 Java 子类,则最终将出现类型异常和运行时值检查以避免它们。

最后,虽然这种建模为您提供了一个不错的OO程序,但缺点是相对于使用基元类型和“调整”来处理有符号与无签名,您将受到显着的性能影响。您可能有兴趣知道 Java 8 中有一个新的 API,用于对有符号基元类型执行未签名操作。

  • https://blogs.oracle.com/darcy/entry/unsigned_api
  • 如何在java 8中使用无符号整数?

API由现有包装类中的新静态方法组成。

 类似资料:
  • 问题内容: 如果我在运行时有一个Class实例,是否可以获取其byte []表示形式?我感兴趣的字节将为Class文件格式,这样它们将是[ClassLoader.defineClass] [3]的有效输入。 [3]:http : //java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html#defineClass(java.lang.S

  • 我有以下代码将csv文件创建为字节数组: 上面返回的是来自java包的字节[]。nio。文件 。 然而,现在我需要从api返回一个Json对象,而不是一个字节数组。 代码中的所有其他逻辑应该保持不变。我能做到这一点的最简单方法是什么?

  • 我遇到了将字节字符串转换为字节数组的强制转换问题。 我有一个字符串[B@1a758cb。也就是Base64加密的String的主String"Gunjan"。这里的解密我想把加密的字节串转换成字节[]。 但是String.get字节[]不适合我。String.getBytes[]给出字节String的字节数。 我该怎么做??我是否必须迭代字节字符串中的每个字符并将其转换为字节[]?? 编辑 我使用

  • 问题内容: 我需要将缓冲区的长度存储在4个字节大的字节数组中。 伪代码: 做到这一点的最佳方法是什么?请记住,稍后我必须将该字节数组转换回整数。 问题答案: 您可以使用以下方式将其转换为字节: 注意,这样做时可能必须考虑字节顺序。

  • 我想通过JavaScript将“base64”字符串转换为字节数组。 我收到来自URL的字符串。 我想把字符串转换成字节数组。因为我需要这个字节数组来发送Rest APIendpoint。rest API content-type=application/octet-stream。