小编Mad*_*gar的帖子

未找到接口 com.example.demo.models.IPerson 的主要或单个唯一构造函数

我正在尝试调用我的后端并设置了一个像这样的简单控制器。

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String Hello(IPerson person) {
        return person.sayHello();
    }
}
Run Code Online (Sandbox Code Playgroud)

IPerson是一个接口如下

package com.example.demo.models;

public interface IPerson {

    default String sayHello() {
        return "Hey There";
    }

}
Run Code Online (Sandbox Code Playgroud)

我已经将接口实现为

package com.example.demo.models;

import lombok.Builder;

@Builder
public class Person implements IPerson{

    String name;
    String age;

}
Run Code Online (Sandbox Code Playgroud)

当我将控制器中的参数更改为接口的实现时,调用起作用,即

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String Hello(Person person) {
        return person.sayHello();
    }
}
Run Code Online (Sandbox Code Playgroud)

在使用 IPerson 作为参数调用该函数时,出现以下错误。

java.lang.IllegalStateException: No primary or single unique constructor found for interface com.example.demo.models.IPerson
    at org.springframework.beans.BeanUtils.getResolvableConstructor(BeanUtils.java:267) …
Run Code Online (Sandbox Code Playgroud)

java interface spring-mvc

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

interface ×1

java ×1

spring-mvc ×1