gpt4 book ai didi

java - 将 YAML 文件转储到包含连字符的字段的 Java 类

转载 作者:行者123 更新时间:2023-12-01 19:33:52 27 4
gpt4 key购买 nike

我正在尝试使用 SnakeYAML 将 YAML 文件转储到 Java 类,但该字段名称中包含连字符,并且 java 变量不能包含 -。

我见过this回答有关该主题的问题,但没有解释正在发生的事情或方法toCameName()确实如此。

Yaml 文件

field-with-hyphen: 1

目标

public int fieldwithhypehen;

或者其他任何东西,这样我就可以把它转储了。

最佳答案

感谢 Clashsoft 为我指明了正确的方向。我能够做一些进一步的研究并构建以下方法,将带有空格和连字符的值传输到驼峰命名法。field-with-hyphens and space 变成 fieldWithHyphensAndSpaces

public class CamelCase {
public static String camelize(String input) {
for (int i = 0; i < input.length(); i++) {
if(input.substring(i, i+1).equals("-")) {
input.replace("-", "");
input = input.substring(0, i) + input.substring(i+1, i+2).toUpperCase() + input.substring(i+2);
}
if(input.substring(i, i+1).equals(" ")) {
input.replace(" ", "");
input = input.substring(0, i) + input.substring(i+1, i+2).toUpperCase() + input.substring(i+2);
}
}
return input;
}
}

并使用 SnakeYAML Parser 实现(我也测试了它)

Constructor c = new Constructor(map);
c.setPropertyUtils(new PropertyUtils() {
@Override
public Property getProperty(Class<? extends Object> type, String name){
if ( name.indexOf('-') > -1 ) {
name = CamelCase.camelize(name);
}
return super.getProperty(type, name);
}
});
parser = new Yaml(c);
configFile = new File(FileConstants.getConfigDir() + relativePath);
}

关于java - 将 YAML 文件转储到包含连字符的字段的 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59239181/

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