当前位置: 首页 > 知识库问答 >
问题:

SnakeYAML:似乎不起作用

何兴邦
2023-03-14

我的代码看起来像

public class Utilities {
    private static final String YAML_PATH = "/problems/src/main/resources/input.yaml";

    public static Map<String, Object> getMapFromYaml() {
        Yaml yaml = new Yaml();
        Map<String, Object> map = (Map<String, Object>) yaml.load(YAML_PATH);
        System.out.println(map);
        return map;
    }

    public static void main(String args[]) {
        getMapFromYaml();
    }
}  

我的YAML文件如下所示

sorting
  01: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]  

当我运行程序时,我看到

Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map
    at com.ds.utilities.Utilities.getMapFromYaml(Utilities.java:19)
    at com.ds.utilities.Utilities.main(Utilities.java:25)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

Process finished with exit code 1

我怎样才能修好它呢?

共有1个答案

海新霁
2023-03-14

它工作得很好

public class RuntimeInput {
    private final Map<String, Object> RUNTIME_INPUT;

    private static final String SORTING = "sorting";
    private static final String YAML_PATH = "/src/main/resources/input.yaml";


    public RuntimeInput() {
        RUNTIME_INPUT = getMapFromYaml();
    }

    public static Map<String, Object> getMapFromYaml() {
        Yaml yaml = new Yaml();
        Reader reader = null;
        Map<String, Object> map = null;
        try {
            reader = new FileReader(YAML_PATH);
            map = (Map<String, Object>) yaml.load(reader);
        } catch (final FileNotFoundException fnfe) {
            System.err.println("We had a problem reading the YAML from the file because we couldn't find the file." + fnfe);
        } finally {
            if (null != reader) {
                try {
                    reader.close();
                } catch (final IOException ioe) {
                    System.err.println("We got the following exception trying to clean up the reader: " + ioe);
                }
            }
        }
        return map;
    }

    public Map<String, Object> getSortingDataInput() {
        return (Map<String, Object>) RUNTIME_INPUT.get(SORTING);
    }

    public static void main(String args[]) {
        RuntimeInput runtimeInput = new RuntimeInput();
        System.out.println(Arrays.asList(runtimeInput.getSortingDataInput()));
    }
}
 类似资料:
  • 问题内容: 我在使用该功能时遇到了麻烦。 我只需要知道SQL查询是否返回零行。 我已经尝试过以下简单的语句: 类型是哪里。上面的代码似乎不起作用。无论是否为空,它将始终打印该消息。 我检查了SQL查询本身,当存在行时它正确返回了非空结果。 关于如何确定查询是否已返回0行的任何想法?我用谷歌搜索,找不到任何答案。 问题答案: ResultSet.getFetchSize()不返回结果数!从这里: 使

  • 问题内容: 即使将属性设置为,我仍然会插入重复的条目。 我设置了使用定期在。我没有用表 问题答案: 我没有使用JPA创建表 然后,您应该在语句中向表中添加唯一约束,例如,如果您使用的是MySQL:

  • 根据我所发现和看到的一切,这似乎是正确的。打印$query时,结果如下所示: “在客户(名字、名字、姓氏、地址、城市、州、邮政编码、电子邮件、性别)中插入值(?,,,,,,,,,,?,,,?)” 参数应该已经用bindValues()中的变量填充。所以,举个例子。。。 插入到客户(第一名、中间名、最后名、地址、城市、州、邮编、电子邮件、性别)值(比尔、霍普金斯、123大街、...) 我想继续使用这

  • 我是Java新手,正在努力学习。我目前陷入困境,不知道为什么无法从文件夹导入。

  • 问题内容: 我正在使用JDBC连接到MySQL服务器(我认为没有连接池)。在连接网址中,我有 但是我的连接仍然超时。我什至检查了它的错误。但是,当我尝试使用连接时,出现以下异常。 我知道在Java 1.6中可以使用它来检查连接,但是我正在使用Java 1.5 有没有办法确保它不会超时?还是我必须升级到Java 1.6? 问题答案: 我有同样的问题,这绝对令人发疯。这是文档在MySQL网站上的内容(

  • 问题内容: 只需创建一个首选大小的简单按钮即可。该方法似乎不起作用。我要去哪里错了? 问题答案: 您的框架受布局管理器的控制,它正在决定如何最好地布局组件,并覆盖您使用所指定的值 现代GUI需要在各种不同的图形环境中运行(甚至在同一OS上),例如,包括不同的DPI,屏幕大小和字体设置。 布局管理器使您不必担心(减少)这些问题,强烈建议您使用它们 看一眼 使用布局管理器 布局管理器的可视指南 更多细