java.lang.NoSuchMethodException: <init>[通俗易懂]

java.lang.NoSuchMethodException: <init>[通俗易懂]报错信息(捡重要的):java.lang.NoSuchMethodException:com.mmall.pojo.OrderItem.&lt;init&gt;(java.lang.Integer,java.lang.Integer,java.lang.Long,java.lang.Integer,java.lang.String,java.lang.String,java.m…

大家好,又见面了,我是你们的朋友全栈君。

报错信息(捡重要的):

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类型,然后你看看构造器参数的顺序,是不是有问题。

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148434.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号