java - StringBuilder 类中 append() 方法的 13 个方法签名但没有短和没有字节
问题描述
StringBuilder 方法 append() 有 13 个方法签名:
append(Object o) {...}
append(String str) {...}
append(StringBuffer sb) {...}
append(CharSequence s) {...}
append(CharSequence s, int start, int end)
append(char[] str) {...}
append(char[] str, int offset, int len) {...}
append(boolean b) {...}
append(char c) {...}
append(int i) {...}
append(long l) {...}
append(float f) {...}
append(double d) {...}
我注意到 byte 和 short 是此列表中唯一缺少的原始数据类型。虽然,使用这些类型的参数确实有效:
public static void main(String... unused) {
short sh = 1;
byte b = 2;
StringBuilder sb = new StringBuilder("abc").append(sh).append(b);
System.out.println(sb);
}
输出:abc12
我的问题是为什么或如何这样做?
这是因为编译器自动将这些参数提升为 int 吗?
解决方案
public static void aMethod(int i)
{
System.out.println("received "+i);
}
public static void main(String args[])
{
short s=1;
byte b=2;
char c='c';
aMethod(s);
aMethod(b);
aMethod(c);
}
他们都使用append(int)
.
查看原始数据类型
推荐阅读
- ios - 返回到不是初始 ViewController 的 MainMenu ViewController - Xamarin iOS
- r - R循环引用多个数据帧
- arrays - 如何检查数组是否包含某个值?
- html - 在 IE 中打开时无法显示聊天机器人 iframe(MS btoframework)中的所有选项
- laravel - Laravel groupBy 值并以 groupBy 值为 key 存储另一个值的总和
- excel - 当用户在对话框中写入要删除的条目的名称时,如何删除组合框列表中的特定项目
- javascript - 使用 javascript 仅查找和替换表中过滤的行
- iot - 是否可以在 Fiware 中重命名设备?
- java - 如何在Java中将数据从一个json对象传递到另一个?
- javascript - 文本框根据 php 中的下拉选择动态填充 db 值