如果一个类没有无参数的构造函数,那么无法直接进行委托。但是可以通过使用带参数的构造函数来解决这个问题。下面是一个示例代码:
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 其他代码...
}
class Student {
private String name;
private int age;
private int studentId;
public Student(String name, int age, int studentId) {
this.name = name;
this.age = age;
this.studentId = studentId;
}
// 其他代码...
}
public class Main {
public static void main(String[] args) {
Person person = new Person("Tom", 20);
// 使用带参数的构造函数进行委托
Student student = new Student(person.getName(), person.getAge(), 12345);
// 其他代码...
}
}
在上面的示例中,Person类没有无参数的构造函数,只有一个带参数的构造函数。如果想要在Student类中委托Person类的构造函数,可以使用person的getName()和getAge()方法获取属性值,并传递给Student类的构造函数。
这样就可以在不支持无主构造函数的情况下进行委托。