java中ruby YAML.load(object)和YAML.dump(serialized_str)的等价物是什么

java中ruby YAML.load(object)和YAML.dump(serialized_str)的等价物是什么,java,android,ruby,serialization,deserialization,Java,Android,Ruby,Serialization,Deserialization,在ruby中,我可以像这样序列化和反序列化: # file.rb class C end s = YAML.dump(C.new) # other_file_and_other_time.rb r = YAML.load(s) puts "r.inspect:#{r.inspect} ---- #{::File.basename __FILE__}:#{__LINE__}" # r.inspect:#<C:0x007f4ff27e6c08> ---- timer.rb:9 pa

在ruby中,我可以像这样序列化和反序列化:

# file.rb
class C

end

s = YAML.dump(C.new)
# other_file_and_other_time.rb
r = YAML.load(s)
puts "r.inspect:#{r.inspect} ---- #{::File.basename __FILE__}:#{__LINE__}"
# r.inspect:#<C:0x007f4ff27e6c08> ---- timer.rb:9
package ro.ex;

import com.google.gson.Gson;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;

class Ex {
    static class MyArrayList<E> extends ArrayList<E> {
        public MyArrayList(Collection c) {
            super(c);
        }

    }

    public static void main(String[] args) throws IOException {
        // file.java
        String s = new Gson().toJson(new Ex());
        // otherFile.java
        Object r = new Gson().fromJson(s, Ex.class);
        System.out.println(r + "\t\t" + new Exception().getStackTrace()[0].getFileName() + ":" + new Exception().getStackTrace()[0].getLineNumber());
    }

}
#file.rb
C类
终止
s=YAML.dump(C.new)
#其他文件和其他时间.rb
r=YAML.荷载(s)
放置“r.inspect:#{r.inspect}----#{::File.basename uuu File uuu}:#{uuu行uu}”
#r.inspect:#----定时器。rb:9
在java中,我可以做类似的事情:

# file.rb
class C

end

s = YAML.dump(C.new)
# other_file_and_other_time.rb
r = YAML.load(s)
puts "r.inspect:#{r.inspect} ---- #{::File.basename __FILE__}:#{__LINE__}"
# r.inspect:#<C:0x007f4ff27e6c08> ---- timer.rb:9
package ro.ex;

import com.google.gson.Gson;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;

class Ex {
    static class MyArrayList<E> extends ArrayList<E> {
        public MyArrayList(Collection c) {
            super(c);
        }

    }

    public static void main(String[] args) throws IOException {
        // file.java
        String s = new Gson().toJson(new Ex());
        // otherFile.java
        Object r = new Gson().fromJson(s, Ex.class);
        System.out.println(r + "\t\t" + new Exception().getStackTrace()[0].getFileName() + ":" + new Exception().getStackTrace()[0].getLineNumber());
    }

}
包装ro.ex;
导入com.google.gson.gson;
导入java.io.IOException;
导入java.util.ArrayList;
导入java.util.Collection;
前级{
静态类MyArrayList扩展了ArrayList{
公共MyArrayList(集合c){
超级(c);
}
}
公共静态void main(字符串[]args)引发IOException{
//file.java
字符串s=new Gson().toJson(new Ex());
//otherFile.java
Object r=new Gson().fromJson(s,Ex.class);
System.out.println(r+“\t\t”+新异常().getStackTrace()[0]。getFileName()+”:“+新异常().getStackTrace()[0]。getLineNumber());
}
}
但我希望省略类型参数:

package ro.ex;

import com.google.gson.Gson;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;

class Ex {
    static class MyArrayList<E> extends ArrayList<E> {
        public MyArrayList(Collection c) {
            super(c);
        }

    }

    public static void main(String[] args) throws IOException {
        // file.java
        String s = new Gson().toJson(new Ex());
        // otherFile.java
        Object r = new Gson().fromJson(s);
        System.out.println(r + "\t\t" + new Exception().getStackTrace()[0].getFileName() + ":" + new Exception().getStackTrace()[0].getLineNumber());
    }

}
包装ro.ex;
导入com.google.gson.gson;
导入java.io.IOException;
导入java.util.ArrayList;
导入java.util.Collection;
前级{
静态类MyArrayList扩展了ArrayList{
公共MyArrayList(集合c){
超级(c);
}
}
公共静态void main(字符串[]args)引发IOException{
//file.java
字符串s=new Gson().toJson(new Ex());
//otherFile.java
Object r=new Gson().fromJson;
System.out.println(r+“\t\t”+新异常().getStackTrace()[0]。getFileName()+”:“+新异常().getStackTrace()[0]。getLineNumber());
}
}
所以我的问题是:如何在没有特定类型的情况下进行反序列化。(传递最后的代码)

Ruby是一种“鸭子”式的动态类型语言,因为它,您可以做类似的事情。 但是Java有一个静态的、安全的和强大的类型规则,所以你不能做这样的事情

然而,由于您已经在“android”标签下标记了您的问题,因此可能会对您有所帮助,需要更多的代码,但这正是您需要的

同时检查以下链接:

  • :“包裹生成”库,Google AutoValue的por
  • :另一个图书馆,没有使用过,但似乎更受欢迎