gpt4 book ai didi

java - 如何使用PODAM获取data[]属性

转载 作者:太空宇宙 更新时间:2023-11-04 06:28:09 33 4
gpt4 key购买 nike

我发现了这个有用的库PODAM ,但我很难获得自动字节数组。我使用了实现的 AttributeStrategy

public class LogoStrategy implements AttributeStrategy<byte[]>{

private static final int MAX_SIZE_FILE = 512*1024;

@Override
public byte[] getValue() throws PodamMockeryException {
byte[] b = new byte[20];
new Random().nextBytes(b);
return b;
}

}

但是当我使用时我得到了这个错误:

2014-10-21 20:13:04 PodamFactoryImpl [ERROR] The type of the Podam Attribute 
Strategy is not java.lang.String but [B. An exception will be thrown.

Exception in thread "main" uk.co.jemos.podam.exceptions.PodamMockeryException: An illegal argument was passed
at uk.co.jemos.podam.api.PodamFactoryImpl.manufacturePojoInternal(PodamFactoryImpl.java:1569)
at uk.co.jemos.podam.api.PodamFactoryImpl.manufacturePojo(PodamFactoryImpl.java:129)
at uk.co.jemos.podam.api.PodamFactoryImpl.manufacturePojo(PodamFactoryImpl.java:119)
at cl.molavec.jpa.entities.singleton.QuotationPropertiesSingleton.getNewInstance(QuotationPropertiesSingleton.java:26)
at cl.molavec.main.InsertDummyData.main(InsertDummyData.java:66)

Caused by: java.lang.IllegalArgumentException: The type of the Podam Attribute Strategy is not java.lang.String but [B. An exception will be thrown.
at uk.co.jemos.podam.api.PodamFactoryImpl.returnAttributeDataStrategyValue(PodamFactoryImpl.java:2888)
at uk.co.jemos.podam.api.PodamFactoryImpl.manufacturePojoInternal(PodamFactoryImpl.java:1493)
... 4 more

我实现了 AttributeStrategy 但带有 char[] 属性,一切都很好。我无法理解为什么需要一个字符串的错误。

有什么建议吗?

提前致谢。

最佳答案

我猜您已将 @PodamStrategyValue 注释附加到了 String 字段。

@PodamStrategyValue(LogoStrategy.class)
String myAttribute;

由于 LogoStrategy 返回 byte[],因此无法将其分配给 String,因此出现异常。

将字段类型更改为 byte[]

@PodamStrategyValue(LogoStrategy.class)
byte[] myAttribute;

或使LogoStrategy返回字符串

public class LogoStrategy implements AttributeStrategy<String>{

private static final Random rnd = new Random();

@Override
public String getValue() throws PodamMockeryException {
byte[] bytes = new byte[20];
rnd.nextBytes(bytes);
return DataTypeConverter.printHexBinary(bytes);
}
}

关于java - 如何使用PODAM获取data[]属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26498074/

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