gpt4 book ai didi

java - 无法实例化 bean 类 : BeanInstantiationException

转载 作者:行者123 更新时间:2023-12-03 03:25:44 26 4
gpt4 key购买 nike

我无法摆脱错误:

  HTTP Status 500 - Request processing failed; nested exception is 
org.springframework.beans.BeanInstantiationException:
Could not instantiate bean class [[Lmain.java.com.springapp.mvc.model.DSLR;]:
No default constructor found;
nested exception is java.lang.NoSuchMethodException: [Lmain.java.com.springapp.mvc.model.DSLR;.<init>()

我实际上在 DSLR 类中有构造函数。我的代码有什么问题吗?

<小时/>

此处 Spring MVC WebApp:http://goo.gl/ddhLg5

<小时/>

据称会导致错误的 DSLR 类:

package main.java.com.springapp.mvc.model;

import org.springframework.beans.factory.annotation.Autowired;

public class DSLR {


public DSLR() {
}


private int dslrId;
private String model;
private int price;
private String description;

public int getDslrId() {
return dslrId;
}

public void setDslrId(int dslrId) {
this.dslrId = dslrId;
}

public String getModel() {
return model;
}

public void setModel(String model) {
this.model = model;
}

public int getPrice() {
return price;
}

public void setPrice(int price) {
this.price = price;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

@Override
public String toString() {
return "DSLR [dslr=" + dslrId + ", model=" + model
+ ", price=" + price+ ", description=" + description+"]";
}
}
<小时/>

在实例化 DSLR 的 DSLRServletController 中我做了更改:

@ModelAttribute("dslrs") DSLR dslrs[]

更改为:

@ModelAttribute("dslrs") 列出 dslrs

它消除了以前的错误并给出了:

org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.util.List]: Specified class is an interface

<小时/>

已解决:Spring MVC web application: No default constructor found如果有人可以在这里总结并写下答案,我很乐意接受!

最佳答案

为了让某些框架以这种方式初始化对象,您必须提供 default constructor (不带参数的构造函数),即使它不执行任何操作

这是因为您可能有另一个构造函数,它至少需要一个参数。从逻辑上讲,库不知道要向您传递给它的每个任意类传递什么参数。

这在错误中指出 java.lang.NoSuchMethodException: [Lmain.java.com.springapp.mvc.model.DSLR;.<init>() :

  • NoSuchMethodException意味着它无法在运行时找到所需的方法(通过反射)
  • .<init>()引用构造函数(构造函数技术上没有名称,因为它们始终只是类本身的名称;因此,JVM 将它们称为 <init>() )。

关于java - 无法实例化 bean 类 : BeanInstantiationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23684004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com