当前位置: 首页 > 面试题库 >

隐式转换为字符串-toString和int +“”

裴良弼
2023-03-14
问题内容

为什么当我使用这个:

int a = 1;
methodWithParamString(a + "");

a强制转换为String,但是我不能在整数上使用toString()吗?

int a = 1;
methodWithParamString(a.toString());

不这样:a+""就像:a.toString() + ""


问题答案:

不,它的工作方式类似于String.valueOf( a ) + "",而行为又类似new StringBuilder( String.valueOf( a ) ).append( "" ).toString()

要知道的重要一点是,它们都是由编译器完成的,换句话说,它就是语法糖。例如,这就是为什么在循环中将字符串添加在一起并不是一个好主意。(尽管现代VM可能具有某种机制来降低性能开销。)



 类似资料:
  • 我有一个用盐散列加密密码的类。 但是,如果要向类传递null,则会出现以下错误: 当我使用类时,我得到错误:“不能隐式转换类型字符串到Byte[]”

  • 我只是无法在c中转换不同的数据类型,我知道c是一种强类型语言,所以我在这里使用了,但我面临一个问题,错误消息是 从“std::string{aka std::basic_string}类型转换为“int”类型的static_

  • 这是我的方法。 我正在尝试获取;放入我的

  • 本文向大家介绍VBA 将多字节字符的字节数组隐式转换为字符串,包括了VBA 将多字节字符的字节数组隐式转换为字符串的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 问题内容: 如何将经典字符串转换为f字符串? 输出: 所需的输出: 问题答案: f字符串是 语法 ,而不是对象类型。您不能将任意字符串转换为该语法,该语法会创建一个字符串对象,而不是相反。 我假设您想用作模板,因此只需在对象上使用方法: 如果要提供可配置的模板服务,请创建一个包含所有可以插值的字段的名称空间字典,并与调用语法一起使用以应用名称空间: 然后,用户可以在字段中的名称空间中使用任何键(或

  • 我正在使用Schembuf在带有套接字的计算机之间更改数据。要传输数据,我使用以下内容: 然而,我注意到Protobuf无法读取任何非int类型的接收数据(它将其分配给0)。果不其然,如果我不使用套接字,但试图用相同的代码片段返回消息,则会发生相同的情况: 我还指出: 那么,为什么我不能正确地将数据转换回字符串呢?如果这是一个参考问题,为什么protobuf不能读取字符数组数据或从字符数组转换的字