gpt4 book ai didi

java - 无法使用 mockneat 将 MockUnit 转换为 String

转载 作者:行者123 更新时间:2023-11-30 05:54:23 33 4
gpt4 key购买 nike

尝试在库mockneat的帮助下使用我自己的Enum,例如mock。但问题是我无法从 MockUnit 对象中获取 string 值来正确地工作 switch 循环。

这是我的枚举:

public enum SubType {

ROUTER("router"),
SERVER("server"),

private final String value;

SubType(final String newValue) {
value = newValue;
}

public String getValue() {
return value;
}
}

这是我的 Build 类,我尝试在其中使用 SubType 中的自定义值:

public class Build {

private MockNeat mockNeat = MockNeat.threadLocal();
private ArrayList<String> group = new ArrayList<>();

public void addToList() {

group.add("All Devices");
group.add("All Groups");

for (i = 0; i < 10; i++) {

MockUnit subType = mockNeat.from(SubType.class).map(SubType::getValue);

//EDITED:
//For example there are sout(subType) = "router"

Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = mockNeat.reflect(Build.class)
.field("group", constructGroupField(subType, group))
.map(gson::toJson)
.val();

System.out.println(json);
}
}

private ArrayList<String> constructGroupField(MockUnit subType, ArrayList<String> group) {

//System.out.println(subType);
//Output: net.andreinc.mockneat.abstraction.MockUnit$$Lambda$22/902830499@740773a3
//But how I can get there my string like "router" or ""server"
//How I can cast MockUnit to String value?

//EDITED:
// And there it can be already sout(subType)= "server"
switch (subType.toString()) {

case "router":
group.add("All AAA");
break;
case "server":
group.add("All BBB");
break;
}

return group;
}

}

主要目标是根据subtype字段中的字符串,输出相应的json文件

更新:

我想要生成的最终 Json 文件:

{
"product": "a",
"group": "router"
}

另一种情况:

private String someMethod() {

MockUnitInt localId = mockNeat.ints().range(5000, 35_000);

Gson gson = new GsonBuilder().setPrettyPrinting().create();

return mockNeat.reflect(someEntity.class)
.field("deviceLocalID", localId.mapToString())
.field("localID", localId.mapToString())
.map(gson::toJson)
.val();

}

即使 localId 是类中的 final 字段,每次引用它时,它每次都会给出随机值。无法理解这有什么问题..

最佳答案

我认为答案是将开关线更改为:

switch (subType.val().toString())

这个想法是,任何 MockUnit 都不会返回任何值,直到您显式调用 val() 为止。

但是我还是不清楚你想要实现什么?您希望最终的 json 是什么样子?

PS:我可能会有所帮助,我是 MockNeat 的作者。

关于java - 无法使用 mockneat 将 MockUnit 转换为 String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53433557/

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