猿问

不理解这行代码为什么会是这样:

首先,Student类的构造方法是这样的:

public Student(String id,String name){
        this.id=id;
        this.name=name;
        this.courses=new HashSet<Course>();
        
    }

然后在测试类中,有这样一个方法:

public void testSort3(){
        List<Student> studentList=new ArrayList();
        studentList.add(new Student(1+"","小明"));
        studentList.add(new Student(2+"","小红"));
        studentList.add(new Student(3+"","小兰"));
    }

为什么在这个方法中,创建Student对象时,参数中会多了一个+号和一个“”?

死神的苹果
浏览 1002回答 1
1回答

慕圣0830664

因为Student类的构造方法中,两个参数都是String类型的。在创建对象的时候,如果直接使用new Student(1, "小明"),编译器会报错,1是int类型,而不是String类型,因为参数类型不匹配。而1+""就是将一个int类型转换成一个字符串,即转换成String类型,这样就可以直接调用Student的构造方法了。
随时随地看视频慕课网APP

相关分类

Java
我要回答