Trouble reading generic class

24 views
Skip to first unread message

Jared DiCioccio

unread,
Feb 15, 2017, 12:29:05 PM2/15/17
to yamlbeans-users
I have a class

public class GenericParameter<T> {

    String name;
    T value;
    //getters and setters...

Is it possible for YamlBeans to parse a file and provide anything but Strings? Right now I'm testing with 

GenericParameter<Double> gpd = new GenericParameter<>();
gpd.setName("Double");
gpd.setValue(4.4);

GenericParameter<Integer> ipd = new GenericParameter<>();
ipd.setName("Integer");
ipd.setValue(2);

GenericParameter<Boolean> bpd = new GenericParameter<>();
bpd.setName("Boolean");
bpd.setValue(false);

YamlConfig yamlConfig=new YamlConfig();
yamlConfig.setClassTag("parameter", GenericParameter.class);

YamlWriter yamlWriter = new YamlWriter(new FileWriter("generic.yaml"),yamlConfig);
yamlWriter.write(list);
yamlWriter.close();

Which produces:

!java.util.Arrays$ArrayList
- !parameter
   name: Double
   value: 4.4
- !parameter
   name: Integer
   value: 2
- !parameter
   name: Boolean
   value: false


But if I read that back:

YamlReader reader = new YamlReader(new FileReader("generic.yaml"),yamlConfig);
ArrayList<GenericParameter> readback = reader.read(ArrayList.class);
reader.close();

readback.forEach(p->System.out.println(p.getValue().getClass()));


It reads everything as String

class java.lang.String
class java.lang.String
class java.lang.String


Is this something I'm doing wrong or not something Yaml can handle?



Reply all
Reply to author
Forward
0 new messages