当前位置: 代码迷 >> java >> 来自Utf8的字符串转换
  详细解决方案

来自Utf8的字符串转换

热度:119   发布时间:2023-08-04 09:25:13.0
   record.get("key")

在这里, recordorg.apache.avro.GenericReord 就我而言,它返回utf8 我需要字符串。 所以我发现了可能性

   record.get("key").toString() - I prefer cast than this method
   record.get("key")+""         - It calls string concatenation method 

以上两项作品。

   (String)record.get("key") - Obviously it throws a classcastexception.
   new String(record.get("key")) - new String(Object) is undefined.

上面的两个不起作用。

我的疑问是,在我的方案中,在toString()+的性能方面哪个更好。

您还有另一个选择,即String.valueOf(record.get(“ key”))不要直接使用record.get(“ key”)。toString(),因为获取NullPointerException可能有所变化。

方式差异

record.get("key")+""使用StringBuilder创建结果字符串,而

String.valueOf(record.get("key"))只需调用String的静态方法即可获取对象的String版本

toString()效果更好。

当您使用+运算符时,它将比较两个对象的类型以执行操作。 恩。 如果两者都是数字类型,则会将两者相加,但是如果具有不同类型,则将仅调用对象的toString()并连接字符串。

使用toString()获得NullPointerException的机会很高。 您可能要使用String.valueOf(record.get("key"))

  相关解决方案