欢迎使用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
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- Android优化之ArrayMap
- hdu 5875 Function 单调栈 + 暴力
- java 数组
- 时钟二:定时器时钟
- js中的浏览器兼容问题
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- Android自定义颜色渐变的拖动条
- [C++] 关于子类声明与父类同名同类型的成员变量的问题
- mybatis连接池原理
- Gao次Fang
- Android触摸屏幕实现类似光标的图片跟随
- 回校毕社(一)
- TortoiseGit上传代码到GitHub记录