我正在尝试调用我的后端并设置了一个像这样的简单控制器。
@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)