Java学习的一个数据类型的问题


        int[] a= {97,98,99};
        String str1=new String(a);
        byte[] b= {97,98,99};
        String str2=new String(b);

报错:The constructor String(int[]) is undefined
string()里面不能是int吗?byte又可以是吗
byte的可以输出abc

在创建String对象时,会调用String的构造方法,如果传入参数会调用对应参数的构造方法,因为String底层有byte[]类型的构造方法
public String(byte bytes[]) {
this(bytes, 0, bytes.length);
}
所以第5行不报错,第三行传入了int数组类型的变量,在String底层没有对应参数的方法,所以就报错了,说没有那个构造方法

你可以去Java API里查看(


String类有一个String(int[] codePoints,int offset, int count)构造器