[英]“JSON parse error: Cannot construct instance of” error when trying to insert data from angular to spring boot api
[英]Json Deserialization Error Spring Boot Testing - Cannot construct the instance
我有一個問題,下面是代碼:-
MainService.java
public void someMethod(Message message){
A aObj = new A (someEnumClass.enumValue, message)
someService.saveData(aObj)
}
public Class A extends B {
int x,y,z;
A(SomeEnumClass enumValue,int c){
super(enumValue);
}
Public abstract class B<EnumClass extends Enum<EnumClass>>{
private EnumClass enumValue
}
現在上面的代碼可以工作了:
但是當我使用下面的類進行測試時
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class MyDemoTests {
@Autowired
private SomeService someService;
@Autowired
private someRepo repository;
@Test
public void testMyservice() throws Exception {
List<A> results = repository.findAll();
assertThat(results).containsAll(all);
}
我在“結果”中收到以下錯誤:-
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `java.lang.Enum` (no Creators, like default construct, exist): abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information
at [Source: (InputStreamReader); line: 1, column: 123] (through reference chain: com.example.A["enumValue"])
非常感激。 謝謝
AFAIK,您不能像您那樣擴展Enum
! 唯一允許的方法是public enum ...
。 因此,完全不可能創建抽象的枚舉基類!
根據您實際想要執行的操作,您可以使用包含默認方法的接口來實現相同的目的。 枚舉可以實現接口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.