簡體   English   中英

Json反序列化錯誤Spring Boot測試-無法構造實例

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM