gpt4 book ai didi

java - Jemos PODAM StackOverflowError

转载 作者:行者123 更新时间:2023-11-30 11:31:27 27 4
gpt4 key购买 nike

请告诉我如何正确地使用 PodamFactory 进行填充。调用 podamFactory.manufacturePojo(Product) 时,productList(源类列表)出现 StackOverflowError

产品 (A) 来源:

public class Product {

private String productName;

private String productDescription;

private Double price;

private Boolean availability;

private List<Product> productList;

// getters & setters

}

异常(exception):

Caused by: java.lang.StackOverflowError
sun.reflect.generics.parser.SignatureParser.parseSimpleClassTypeSignature(SignatureParser.java:253)
sun.reflect.generics.parser.SignatureParser.parseClassTypeSignatureSuffix(SignatureParser.java:270)
sun.reflect.generics.parser.SignatureParser.parseClassTypeSignature(SignatureParser.java:244)
sun.reflect.generics.parser.SignatureParser.parseFieldTypeSignature(SignatureParser.java:228)
sun.reflect.generics.parser.SignatureParser.parseTypeArgument(SignatureParser.java:319)
sun.reflect.generics.parser.SignatureParser.parseTypeArguments(SignatureParser.java:284)
sun.reflect.generics.parser.SignatureParser.parseSimpleClassTypeSignature(SignatureParser.java:260)
sun.reflect.generics.parser.SignatureParser.parseClassTypeSignatureSuffix(SignatureParser.java:270)
sun.reflect.generics.parser.SignatureParser.parseClassTypeSignature(SignatureParser.java:244)
sun.reflect.generics.parser.SignatureParser.parseFieldTypeSignature(SignatureParser.java:228)
sun.reflect.generics.parser.SignatureParser.parseTypeSignature(SignatureParser.java:359)
sun.reflect.generics.parser.SignatureParser.parseZeroOrMoreTypeSignatures(SignatureParser.java:469)
sun.reflect.generics.parser.SignatureParser.parseFormalParameters(SignatureParser.java:446)
sun.reflect.generics.parser.SignatureParser.parseMethodTypeSignature(SignatureParser.java:436)
sun.reflect.generics.parser.SignatureParser.parseMethodSig(SignatureParser.java:141)
sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:37)
sun.reflect.generics.repository.ConstructorRepository.parse(ConstructorRepository.java:25)
sun.reflect.generics.repository.AbstractRepository.<init>(AbstractRepository.java:56)
sun.reflect.generics.repository.GenericDeclRepository.<init>(GenericDeclRepository.java:30)
sun.reflect.generics.repository.ConstructorRepository.<init>(ConstructorRepository.java:33)
sun.reflect.generics.repository.MethodRepository.<init>(MethodRepository.java:28)
sun.reflect.generics.repository.MethodRepository.make(MethodRepository.java:41)
java.lang.reflect.Method.getGenericInfo(Method.java:94)
java.lang.reflect.Method.getGenericParameterTypes(Method.java:282)
uk.co.jemos.podam.api.PodamFactoryImpl.manufacturePojoInternal(PodamFactoryImpl.java:1464)
uk.co.jemos.podam.api.PodamFactoryImpl.manufacturePojo(PodamFactoryImpl.java:109)
uk.co.jemos.podam.api.PodamFactoryImpl.manufactureAttributeValue(PodamFactoryImpl.java:1681)
uk.co.jemos.podam.api.PodamFactoryImpl.manufactureAttributeValue(PodamFactoryImpl.java:1568)
uk.co.jemos.podam.api.PodamFactoryImpl.fillCollection(PodamFactoryImpl.java:2078)
uk.co.jemos.podam.api.PodamFactoryImpl.resolveCollectionValueWhenCollectionIsPojoAttribute(PodamFactoryImpl.java:1973)
uk.co.jemos.podam.api.PodamFactoryImpl.manufactureAttributeValue(PodamFactoryImpl.java:1646)
uk.co.jemos.podam.api.PodamFactoryImpl.manufacturePojoInternal(PodamFactoryImpl.java:1485)
uk.co.jemos.podam.api.PodamFactoryImpl.manufacturePojo(PodamFactoryImpl.java:109)
uk.co.jemos.podam.api.PodamFactoryImpl.manufactureAttributeValue(PodamFactoryImpl.java:1681)
uk.co.jemos.podam.api.PodamFactoryImpl.manufactureAttributeValue(PodamFactoryImpl.java:1568)
uk.co.jemos.podam.api.PodamFactoryImpl.fillCollection(PodamFactoryImpl.java:2078)
uk.co.jemos.podam.api.PodamFactoryImpl.resolveCollectionValueWhenCollectionIsPojoAttribute(PodamFactoryImpl.java:1973)
uk.co.jemos.podam.api.PodamFactoryImpl.manufactureAttributeValue(PodamFactoryImpl.java:1646)
uk.co.jemos.podam.api.PodamFactoryImpl.manufacturePojoInternal(PodamFactoryImpl.java:1485)
uk.co.jemos.podam.api.PodamFactoryImpl.manufacturePojo(PodamFactoryImpl.java:109)
uk.co.jemos.podam.api.PodamFactoryImpl.manufactureAttributeValue(PodamFactoryImpl.java:1681)
uk.co.jemos.podam.api.PodamFactoryImpl.manufactureAttributeValue(PodamFactoryImpl.java:1568)
uk.co.jemos.podam.api.PodamFactoryImpl.fillCollection(PodamFactoryImpl.java:2078)

最佳答案

问题很可能出在这里:

private List<Product> productList;

看起来无论发生什么过程都会在这里递归。你必须打破这种递归性。

然而,经过一些谷歌搜索后,它看起来很奇怪,因为您使用的 API has support for recursivity -- 但链接中的案例是针对一个实例,而不是实例的集合。

试试更新的版本?

编辑 有一个@PodamCollection 注释,也许它可以帮助你

关于java - Jemos PODAM StackOverflowError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17144950/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com