最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下. 由于Java泛型的实现机制,使用了泛型的代码在运行期间相关的泛型参数的类型会被擦除,我们无法在运行期间获知泛型参数的具体类型(所有的泛型类型在运行时都是Object类型). 但是有的时候,我们确实需要获知泛型参数的类型,比如将使用了泛型的Java代码序列化或者反序列化的时候,这个时候问题就变得比较棘手. class Foo<T>…
Java可变参数/可变长参数 传递的参数不确定长度,是变长的参数,例如小例子: package demo; public class Demo { public static int sum(int n, int... nums) { for (int i = 0; i < nums.length; i++) { n = n + nums[i]; } return n; } public static void main(String[] args) { int s1 = sum(1, 2);…
引言: 我们在编写方法的过程中,可能会遇见一个方法有不确定参数个数的情况.一般我们会用方法重载来解决问题: //方法重载,解决参数个数不确定问题 public void method(); public void method(int i); public void method(int i, int j); public void method(int i, int j, int k); 但是当参数多的时候就会显得很繁琐,同时每次扩展都会很麻烦.于是我们可以使用数组作为参数: int[] a=…
来源于:https://my.oschina.net/u/1754093/blog/707083 1.按参数名称绑定 在HQL语句中定义命名参数要用":"开头,形式如下: Query query=session.createQuery("from User user where user.name=:customername and user:customerage=:age "); query.setString("customername"…