欢迎使用CSDN-markdown编辑器

来源:互联网 发布:java编程心得体会 编辑:程序博客网 时间:2024/06/05 04:37

java中如何动态返回数据类型

在用hibernate 或者mybatis时,经常会用到session.get();方法来返回一个对象,而这个对象的类型却是不固定的,那么它是怎么做到的呢?

  • 废话不多说,直接上代码:
public <T> T get(Object[] params,class<T> t ){        T t = T.newInstance();        do something here;        return t;}   

在上面的代码块中就是一个动态的返回类型,其返回类型用泛型T来代替,再通过反射来获取传入这个类类型行的实例(通过反射我们可以完全获取这个传入类类型的属性和方法,即相当于我们已经知道这个返回值类型的结构,自然就不难为其赋值了,关于反射的用法,在这里就不多赘述了)

  • 实例
/***Person类*/class person{    private String name;    private int age;    get();//简写的get和set方法    set();}//返回personPerson p =  get(params,Person.class);


  • 总结

通过java的反射我们可以定义一个动态返回值类型的函数,在借助java的反射机制,我们才能真正的发挥这个动态返回值类型函数的作用,之后我会通过反射机制和泛型的技术来实习自己的数据库底层框架,实现像hibernate中那样,可以通过session.execute(sql,params);来直接返回我们想要的对象或者是对象的集合

0 0
原创粉丝点击