当前位置: 首页 > 知识库问答 >
问题:

为什么Spring找不到缺省构造函数呢?

解河
2023-03-14

我不断地得到错误:

Error creating bean with name 'category' defined in file [/home/dazikiri_anikar/IdeaProjects/shop/target/classes/pl/shop/models/Category.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [pl.shop.models.Category]: No default constructor found; nested exception is java.lang.NoSuchMethodException: pl.shop.models.Category.<init>()

下面是Spring有问题的类:

package pl.shop.models;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@NoArgsConstructor
@AllArgsConstructor
@Getter
@Component
public enum Category {

    HEALTHY_FOOD,
    JUNK_FOOD,
    TEAS_AND_COFFEES,
    SPICES,
    GRAINS_AND_LENTILS,
    NUTS_AND_SEEDS,
    DRIED_FRUITS,
    SNACKS,
    DRINKS;

    private String categoryName;
    List<Product> productList = new ArrayList<>();
}

我找到的答案都是...若要定义默认构造函数,请执行以下操作。那...就在那里,来自龙目岛的@noargsconstructor,对吗?即使我把它去掉,自己定义,也不会改变什么。

我尝试自己定义这两个构造函数(no args和all args)都没有用,然后添加了@autowired,这导致了一个错误,即没有'string'bean,这让我在这个阶段完全没有头绪。

拜托,救命。

共有1个答案

许自强
2023-03-14

在Java中,Enum只有私有构造函数。因此不能被Spring实例化

 类似资料:
  • 问题内容: 我的MyBatis映射有问题。我有一个像这样的领域类: 一个映射器类,具有如下方法: 在数据库中,三列的类型分别为Number,Timestamp和Clob,并且名称与类字段中的名称相同。 当我使用此方法时,我得到一个: ExecutorException:在[MyClass;中找不到构造函数。 匹配[java.math.BigDecimal,java.sql.Timestamp,or

  • 我被C++14的编译器错误弄糊涂了。它涉及成员变量的缺省构造函数的必要性。在下面的代码中,类A没有默认构造函数。类B有一个由它移动分配的类型a的成员。编译器抱怨缺少的默认构造函数,即使我没有显式地调用它。在B的构造函数中是否有一些对A的默认构造函数的隐式调用,而我缺少了这些调用?我的理解是,如果您在B的构造函数中初始化B的成员,那么默认构造函数就不是必需的。 当B被注释掉时,main中的代码工作得

  • 我在一些设备上面临这个问题,并在崩溃分析中出错。很多用户设备都面临这个问题,但在我的设备上运行良好。 无法启动活动ComponentInfo{com.ox.outloks.new/com.ox.outloks.new.activities.maindraweractivity}:Android.support.v4.app.fragment$instantiationexception:无法实例化

  • Spring靴和jpa给出了错误 项目的github链接https://github.com/dishankgoyal/springsBoot/tree/master/faculty_project

  • 问题内容: 必须使用无参数构造函数(像Hibernate这样的工具会在此构造函数上使用反射来实例化对象)。 我得到了这个手挥手的答案,但是有人可以进一步解释吗?谢谢 问题答案: hibernate,并且通常通过反射创建对象的代码用于创建类的新实例。此方法需要一个公共的无参数构造函数才能实例化该对象。对于大多数用例,提供无参数构造函数不是问题。 有一些基于序列化的技巧可以解决没有no-arg构造函数

  • 问题内容: 我是Java的新手,如果我的问题很愚蠢,对不起。我正在从事这项工作,并且我已经阅读了几个小时的主要方法,但是我无法弄清楚。我在下面放了一些代码。我可能离这里很远,但是我希望完成的工作是获取启动构造函数的主要方法,但是在编译时出现错误,提示“找不到符号- 构造函数Player”。现在,我想这与构造函数的字符串参数有关,但我全力以赴。如果有人可以阐明这个可能很简单的问题,我会很高兴的:)