java中的反射机制应用
来源:互联网 发布:用java做幸运抽奖 编辑:程序博客网 时间:2024/05/16 13:49
平时常将CRUD的数据库操作抽出来,那么反射机制获取实例这个就比较应用广泛了。
直接上代码。
定义一个IBaseDao接口。
package com.reflect.pro3;public interface IBaseDao<T> { void save(T t); void saveOrUpdate(T t); void delete(T t); void update(T t);}
有接口,当然就有实现类了。
package com.reflect.pro3;import java.lang.reflect.ParameterizedType;@SuppressWarnings("unchecked")public class BaseDao<T> implements IBaseDao<T> { protected Class<T> entityClass; public BaseDao() { } protected Class<T> getEntityClass() { if (entityClass == null) { // getClass().getGenericSuperclass()返回表示此 Class 所表示的实体(类、接口、基本类型或 // void)的直接超类的 Type entityClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()) .getActualTypeArguments()[0]; } return entityClass; } @Override public void save(T t) { // TODO Auto-generated method stub System.out.println("save" + t); } @Override public void saveOrUpdate(T t) { // TODO Auto-generated method stub System.out.println("saveOrUpdate" + t); } @Override public void delete(T t) { // TODO Auto-generated method stub System.out.println("delete" + t); } @Override public void update(T t) { // TODO Auto-generated method stub System.out.println("update" + t); }}
实现·类里面已经写好增删改差操作。
但系由于不知道是什么类型的javabean,直接用泛型写。方便扩充。
举个例子:
定义一个LoginEntity的javabean类。进行测试。
package com.reflect.pro3;public class LoginEntity { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public LoginEntity() { super(); } public LoginEntity(String username, String password) { super(); this.username = username; this.password = password; } @Override public String toString() { return "LoginEntity [username=" + username + ", password=" + password + "]"; }}
上面直接重写toString方法,方便等下的输出。
定义一个ILoginDao 接口。并且实现IBaseDao接口。为啥这么做,这么做可以呢?接口的继承,实现更多的方法。也可以扩充这里的ILoginDao方法。java多态的体现。
package com.reflect.pro3;public interface ILoginDao extends IBaseDao<LoginEntity> { //日后扩充不同的需求。}
有接口肯定就有实现类。
package com.reflect.pro3;public class LoginDao extends BaseDao<LoginEntity> implements ILoginDao {}
这里只要继承了BaseDao类实现ILoginDao接口,那么就有了对应的方法了。
最后写个测试类。
package com.reflect.pro3;public class TestLoginPro { public static void main(String[] args) { ILoginDao iLoginDao = new LoginDao(); LoginEntity entity = new LoginEntity("tanweicheng", "123456"); iLoginDao.save(entity); iLoginDao.delete(entity); iLoginDao.saveOrUpdate(entity); iLoginDao.delete(entity); }}
运行结果:
saveLoginEntity [username=tanweicheng, password=123456]deleteLoginEntity [username=tanweicheng, password=123456]saveOrUpdateLoginEntity [username=tanweicheng, password=123456]deleteLoginEntity [username=tanweicheng, password=123456]
这个·就是反射机制的应用,通过发射获取对应的对象。这么做就将相同的CRUD部分抽出来了,简单了。
0 0
- java中的反射机制应用
- JAVA反射机制web中的应用实例
- Android中的Java反射机制应用
- 反射机制在java中的应用
- Java反射机制应用
- 浅谈JAVA反射机制在Android应用开发中的应用
- 浅谈JAVA反射机制在Android应用开发中的应用
- 浅谈JAVA反射机制在Android应用开发中的应用
- 浅谈JAVA反射机制在Android应用开发中的应用
- 浅谈JAVA反射机制在Android应用开发中的应用
- 浅谈JAVA反射机制在Android应用开发中的应用
- 浅谈JAVA反射机制在Android应用开发中的应用
- java中的反射机制在android中的应用
- Java中的反射机制
- JAVA中的反射机制
- Java中的反射机制
- java中的反射机制
- JAVA中的反射机制
- android 打造真正的无限循环viewpager
- 关于设置ActionMode 的背景
- sybase数据库优化
- Accessing pixel values of Texture2D
- 何凯明的深度残差网络 ICML2016 tutorial
- java中的反射机制应用
- 安卓Studio实用快捷键
- 这个开源项目展示了如何实现一个横跨各种Android平台的音乐播放器,包括手机,平板,汽车,手表,电视等。Google官方推出,跨平台开发必看项目。
- php traits初学者的初步理解
- nginx服务器ob_flush和flush不起作用
- HtmlParser的开发实例
- React Native 学习笔记四(关于state的使用)
- 第 11 章 Jenkins – Notification
- rails enum用于存储数据