Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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 使用yamlbeans和fxml属性的yaml序列化_Java_Serialization_Properties_Yaml - Fatal编程技术网

Java 使用yamlbeans和fxml属性的yaml序列化

Java 使用yamlbeans和fxml属性的yaml序列化,java,serialization,properties,yaml,Java,Serialization,Properties,Yaml,我正在尝试使用YamlBeans序列化fxml属性。特别是一种财产。该类有一个私有属性字段和fxml标准getter和setter方法,但在发生序列化时,信息不会保存到文件中 入口点: import java.io.IOException; public class Main { public static void main(String[] args) throws IOException{ Person person = new Person(5);

我正在尝试使用YamlBeans序列化fxml属性。特别是一种财产。该类有一个私有属性字段和fxml标准getter和setter方法,但在发生序列化时,信息不会保存到文件中

入口点:

import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException{
        Person person = new Person(5);
        YamlSerializer.serialize(person, System.getProperty("user.dir") + "/person.yml");
    }
}
Person.java

import javafx.beans.property.Property;
import javafx.beans.property.SimpleDoubleProperty;

public class Person{
    private Property<Number> age;
    public Person(){
        age = new SimpleDoubleProperty();
        age.setValue(3);
    }
    public Person(Number age){
        this.age = new SimpleDoubleProperty(age.doubleValue());
    }
    public Property<Number> ageProperty() {
        return this.age;
    }

    public Number getAge() {
        return this.ageProperty().getValue();
    }

    public void setAge(final Number age) {
        this.ageProperty().setValue(age);
    }
}
输出文件person.yml:

!Person {}

您的代码看起来正常。Beans
getProperties
为您的类返回什么?这是什么

结果是找到所有属性,然后寻找get/set方法。它看起来应该找到
number
字段,然后是
setNumber
getNumber
方法,但您没有提供完整的类代码

我建议提供一个新的解决方案。试图帮助一个人而不这样做是一种冒险和浪费时间的行为

编辑:bean查找字段的方式,然后是匹配的setter/getter,
Property age
不起作用。bean查找类型为
Property
的setter/getter,但没有找到它们。IIRC它过去使用的是内省器,但它必须被删除,因为它在安卓系统中丢失了


要解决这个问题,您需要对bean进行修补,以便更智能地查找没有相应字段的setter/getter。这样做的PR将被合并。

可能应该提到您正在使用。它在标题中,但我再次提到它以供澄清。我认为这是我缺少的代码,我不太理解。我应该在什么上调用getProperties?有什么方法可以让YamlWriter了解FXML bean吗?它似乎是一个空列表。图片添加。I'v添加的代码应该很容易粘贴到项目中,假设您安装了.jar for YamlBeans和Fxml。要制作可以复制/粘贴的代码,请使用静态类和main方法。也更容易写入/读取字符串。但这是下一次,我更新了我的答案。
!Person {}