今天写程序遇到的错误
Exception in thread "main" java.lang.IllegalArgumentException: argument type mismatch
argument type mismatch---》参数类型不匹配
直接上代码
public class Student {
private String name;
private int age;
//私有的有参构造方法
private Student(String name){
System.out.println("name的值为"+name);
System.out.println("private....Student...有参构造方法");
}
//公共的无参构造方法
public Student(){
System.out.println("public...student...无参构造方法");
}
//公共的有参构造方法
public Student(String name,int age){
System.out.println("name的值"+name+"age的值为"+age);
System.out.println("public。。。Student...有参构造方法");
}
}
测试类:
public class test2 {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
//T newlnstance(Object...initargs):根据指定的构造方法创建对象
//1.获取class对象
Class aClass = Class.forName("com.sx.first.reflect2.Student");
//2.获取构造方法对象
Constructor constructor = aClass.getConstructor(String.class, int.class);
//3.利用newlnstance创建对象
Student student = (Student) constructor.newInstance("zhangsan", "23");
System.out.println(student);
}
}
本人一学渣,报的错误一下懵了没看懂,程序也没有报错,自己看了好久才发现
Student student = (Student) constructor.newInstance("zhangsan", "23");
这一行在学生类是int类 而我写参数的时候加了"23" ,但是一值没有报错 哈哈哈哈希望大家注意 还有就是以后Mybatis 和数据库连接的时候有可能也会出现这个问题 加油