无法将类型“java. lang.String”的值转换为所需类型“com.x.x.Recordtype”
此外,RecordType枚举是一个反编译文件,因此无法对其进行任何更改。
在swagger-用户界面中,记录类型作为下拉列表出现。下拉列表项
使用
//RecordType.class
import lombok.Generated;
public enum RecordType {
BILL("BILL", "ABC#"),
LAW("LAW", "XYZ#");
private String recordType;
private String key;
@Generated
public String getRecordType() {return this.recordType; }
@Generated
public string getKey() { return this.key; }
@Generated
private RecordType(final String recordtype, final String key) {
this.recordType = recordType;
this.key = key;
}
@Generated
public String toString() {
String alpha = this.name();
return "RecordType:"+alpha+"(recordType="+this.getRecordtype+", key="+this.getKey()+")";
}
}
数据控制器代码
//DataController.java
import org.springframework.http.ResponseEntity;
@Restcontroller
@RequestMapping("/api/internal")
public class Controller {
@Autowired
private IShopData shopData;
@GetMapping("/entity/number")
public <T>ResponseEntity<T> getResponseByRecordType(@RequestParam(name="recordType") RecordType recordType, @Requestparam(name = "data", required = false) boolean data) throws Exception{
T response = shopData.getNumber(recordType, data );
return ResponseEntity.ok().body(response);
}
}
在@GetMaps("/entity/number")公共响应实体getContseByRecordType
第一个参数(两个参数都来自swagger-用户界面)是String而不是RecordType
试试下面。
@RequestParam(name="recordType") @Schema(allowableValues = {"BILL", "LAW" }) RecordType recordType