工作学习笔记(十二)java 无法将类 XX类中的构造器 X应用到给定类型
今天的工作中遇到了这么个情况“java 无法将类 XX类中的构造器 X应用到给定类型”
-
含义
就是说你写的代码里调用某个类的构造器来实例化对象,但传入的参数情况不符合该构造器原本的定义要求,导致编译器识别出这是一个错误的调用方式,进而抛出这样的报错信息。 -
常见原因
-
1.参数类型不符:
例如有个类 Book 的构造器定义为 public Book(String title, int pageCount),要是你这样写 Book myBook = new Book(123, "Java Basics");,就错了。因为构造器期望先传入一个字符串类型作为书籍标题,再传入一个整型表示页数,而这里传入参数的顺序和类型刚好弄反了,不符合构造器要求,就会出现该报错。 -
2.参数数量不对:
比如 Car 类有构造器 public Car(String brand, String color),可你在创建 Car 对象时写成 Car myCar = new Car("Toyota");,少传了表示颜色的参数,与构造器定义需要两个参数不一致,也会触发此报错。 -
解决方法
-
1.核实参数数量是否正确
每个构造器都明确规定了需要接收几个参数来创建对象,调用时传入的参数数量要与之相符。少传或者多传参数都会导致上述错误出现。 -
2.检查参数类型是否匹配
构造器在定义时对每个参数都有明确的类型要求,所以要仔细核对创建对象时传入参数的实际类型与构造器定义的参数类型是否一致。比如,构造器定义某个参数为 String 类型,那传入的就必须是字符串,不能是数字或者其他不相符的类型。
浙公网安备 33010602011771号