Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jemos PODAM StackOverflowerr_Java_Jemos Podam - Fatal编程技术网

Java Jemos PODAM StackOverflowerr

Java Jemos PODAM StackOverflowerr,java,jemos-podam,Java,Jemos Podam,请告诉我如何正确使用PodamFactory进行填充。调用podamFactory.manufacturePojo(产品)时,我得到productList(源类列表)的StackOverflowError 产品(A)来源: 公共类产品{ 私有字符串产品名称; 私有字符串描述; 私人双价; 私有布尔可用性; 私有列表产品列表; //接球手和接球手 } 例外情况: Caused by: java.lang.StackOverflowError sun.reflect.generics.pa

请告诉我如何正确使用PodamFactory进行填充。调用
podamFactory.manufacturePojo(产品)
时,我得到
productList
(源类列表)的
StackOverflowError

产品(A)来源:

公共类产品{
私有字符串产品名称;
私有字符串描述;
私人双价;
私有布尔可用性;
私有列表产品列表;
//接球手和接球手
}
例外情况:

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)
原因:java.lang.StackOverflower错误
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.(AbstractRepository.java:56)
sun.reflect.generics.repository.GenericDeclRepository.(GenericDeclRepository.java:30)
sun.reflect.generics.repository.ConstructorRepository.(ConstructorRepository.java:33)
reflect.generics.repository.MethodRepository.(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)
在CollectionisProject属性时,uk.co.jemos.podam.api.PodamFactoryImpl.ResolveCollectionValueWhen CollectionisProject属性(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)
在CollectionisProject属性时,uk.co.jemos.podam.api.PodamFactoryImpl.ResolveCollectionValueWhen CollectionisProject属性(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;
私有列表productList;
看起来无论发生什么过程都是递归的。你必须打破这种递归性

然而,在谷歌搜索了一番之后,它看起来很奇怪,因为您使用的API——但是链接中的情况是针对一个实例,而不是实例的集合

试试更新的版本


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

因为3.1.3版的PODAM通过检测POJO依赖项中的循环并剪切递归来优雅地处理这种情况。

试试podamFactory.manufacturePojo(ArrayList.class,Product.class)

是,我还认为问题在于
私有列表productList。我尝试使用版本-
3.0.2.RELEASE
3.0.3.RELEASE
(上一次)尝试限制列表中创建的元素数量(我提到的注释允许这样做),那么它是否有效?谢谢您的回答,但是使用注释
@PodamCollection(NBR元素=3)
我收到了相同的错误。这应该是一个注释而不是答案
private List<Product> productList;