首页 > 解决方案 > 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 吗?

标签: javaappendstringbuilder

解决方案


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).

查看原始数据类型


推荐阅读