java.lang.NoSuchMethodException: <init>

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wz1997/article/details/82827479

报错信息(捡重要的):

java.lang.NoSuchMethodException: com.mmall.pojo.OrderItem.<init>(java.lang.Integer, java.lang.Integer, java.lang.Long, java.lang.Integer, java.lang.String, java.lang.String, java.math.BigDecimal, java.lang.Integer, java.math.BigDecimal, java.util.Date, java.util.Date)
	at java.lang.Class.getConstructor0(Class.java:3082)
	at java.lang.Class.getDeclaredConstructor(Class.java:2178)
	at org.apache.ibatis.reflection.factory.DefaultObjectFactory.instantiateClass(DefaultObjectFactory.java:68)
	at org.apache.ibatis.reflection.factory.DefaultObjectFactory.create(DefaultObjectFactory.java:50)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createParameterizedResultObject(DefaultResultSetHandler.java:630)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:595)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:574)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:379)
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:338)
	

其实许多信息根本不用看,就看第一句,我给你截下来

java.lang.NoSuchMethodException: com.mmall.pojo.OrderItem.<init>(java.lang.Integer, java.lang.Integer, java.lang.Long, java.lang.Integer, java.lang.String, java.lang.String, java.math.BigDecimal, java.lang.Integer, java.math.BigDecimal, java.util.Date, java.util.Date)

为什么会报这种错误?

其实很简单,就是OrderItem这个类实例化出错了

给你们看看属性,然后再看看构造器

public class OrderItem {
    private Integer id;

    private Integer userId;

    private Long orderNo;

    private Integer productId;

    public OrderItem(Integer id, Long orderNo, Integer productId, Integer userId) {
        this.id = id;
        this.orderNo = orderNo;
        this.productId = productId;
        this.userId = userId;
    }

然后你再看看上面我用红色标明的错误信息,当mybatis加载这个类的时候,是按照顺序来加载的。

第二个明显是Integer类型,然后你看看构造器参数的顺序,是不是有问题。

改过来就行了。(注意:当写重载构造器的时候,一定要按照顺序来传递参数

猜你喜欢

转载自blog.csdn.net/wz1997/article/details/82827479