加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

什么是Scala方式来实现这个Java“byte []到Hex”类

发布时间:2020-12-16 09:34:10 所属栏目:安全 来源:网络整理
导读:我特别感兴趣的是Scala(2.8)技术,用于使用格式构建字符串,以及有趣的方法,使这样一个功能很容易访问,它的有用(字节列表,String,…?) public class Hex { public static String valueOf (final byte buf[]) { if (null == buf) { return null; } final
我特别感兴趣的是Scala(2.8)技术,用于使用格式构建字符串,以及有趣的方法,使这样一个功能很容易访问,它的有用(字节列表,String,…?)

public class Hex {
  public static String valueOf (final byte buf[]) {
    if (null == buf) {
      return null;
    }
    final StringBuilder sb = new StringBuilder(buf.length * 2);
    for (final byte b : buf) {
      sb.append(String.format("%02X",b & 0xff));
    }
    return sb.toString();
  }

  public static String valueOf (final Byteable o) {
    return valueOf(o.toByteArray());
  }
}

这只是一个学习练习(所以Java的效用和实现不是一个问题。)

谢谢

解决方法

这不像你的代码一样处理null。

object Hex {

  def valueOf(buf: Array[Byte]): String = buf.map("%02X" format _).mkString

  def valueOf(o: Byteable): String = valueOf(o.toByteArray)

}

如果您想要处理可能为空的数组,那么您可能会更好地调用代码并执行以下操作:

val bytes: Array[Byte] = // something,possibly null
val string: Option[String] = Option(bytes).map(Hex.valueOf)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读