有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

StringBuilder类中方法append()的java 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吗


共 (1) 个答案

  1. # 1 楼答案

    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)

    Primitive Data Types