提供一个思路。。
用一个arraylist 存新增的class 类,泛型用Object
然后遍历arraylist 来实现判断实体bean~~
假如你有A,B,C......新增bean类ArrayList<Object> clsList = new ArrayList<Object>();
Object a = new A();
clsList.add(a);
Object b = new B();
clsList.add(B);
//省略很多新增实体Bean,以上代码可以封装一次。 clsList设为全局即可。。
//以下代码封装一个类。
while(!clsList.isEmpty()) { while 或for 循环遍历clsList 来比较。
//执行你的比较。
}
用一个arraylist 存新增的class 类,泛型用Object
然后遍历arraylist 来实现判断实体bean~~
假如你有A,B,C......新增bean类ArrayList<Object> clsList = new ArrayList<Object>();
Object a = new A();
clsList.add(a);
Object b = new B();
clsList.add(B);
//省略很多新增实体Bean,以上代码可以封装一次。 clsList设为全局即可。。
//以下代码封装一个类。
while(!clsList.isEmpty()) { while 或for 循环遍历clsList 来比较。
//执行你的比较。
}
解决方案 »
- 在DOS窗口下输入javac -help命令帮组信息出现乱码(有图)
- 写java作业时遇到的一个问题,求解!
- 谁能详细说一下java语言中的副本是什么意思,与引用有什么关系?
- 请教集合的问题。
- 为什么窗口最大化一下就变了,屏幕
- 请教两个问题,帮顶也有分.:)
- Eclipse3.0M8怎么启动不了?100分候教
- 请问能不能使IIS支持JSP
- 散分啦
- 我的程序为什么出现这样的错误:Exception in thread "main" java.lang.NoClassDefFoundError: SimpleFrameTest
- 内存溢出,引发的一个问题【求大神们帮帮忙】
- 学Java:什么时候适合开始看源代码
public interface Converter<T>{
public CommonBean convert(T t);
}
public class Module {
private String auth;
private String name;
public String getAuth() {
return auth;
}
public void setAuth(String auth) {
this.auth = auth;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Module [auth=" + auth + ", name=" + name + "]";
}
}
public class ModuleConverter implements Converter<Module>{
@Override
public CommonBean convert(Module module) {
CommonBean bean = new CommonBean();
bean.setName(module.getAuth());
bean.setValue(module.getName());
return bean;
}
}
public class RoleConfig {
private String id;
private String roleName;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
@Override
public String toString() {
return "RoleConfig [id=" + id + ", roleName=" + roleName + "]";
}
}
public class RoleConfigConverter implements Converter<RoleConfig>{ @Override
public CommonBean convert(RoleConfig config) {
CommonBean bean = new CommonBean();
bean.setName(config.getId());
bean.setValue(config.getRoleName());
return bean;
}
}
public class ConverterFactory {
//以后如果添加新类型,只需要添加一个XXXConverter就可以了!
//如果要修改规则,可以在这里统一修改!
//还可以把object和converter的映射规则做缓存
public static Converter<?> getConverter(Object object){
try{
Class<?> clazz = object.getClass();
String sn = clazz.getName();
//约定优于配置,只需要在要转化的类型后面追加上Converter就可以了
String convertName = sn + "Converter";
Class<?> convertClass = Class.forName(convertName);
return (Converter<?>)convertClass.newInstance();
}catch(Exception e){
e.printStackTrace();
return null;
}
}
}
public class CommonBean {
private String name;
private String value;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return "CommonBean [name=" + name + ", value=" + value + "]";
}
}
public class Main {
//已经很简化了,而且永远不需要做改动!
private static List<CommonBean> extractNalueName(List<?> list){
try{
List<CommonBean> nList = new ArrayList<CommonBean>();
Object instance = list.get(0);
Converter convertInstance = ConverterFactory.getConverter(instance);
for(int i=0;i<list.size();i++){
Object obj = list.get(i);
CommonBean bean = convertInstance.convert(obj);
nList.add(bean);
}
return nList;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
testRoleConfig();
testModule();
}
private static void testRoleConfig(){
List<RoleConfig> list = new ArrayList<RoleConfig>();
RoleConfig r = new RoleConfig();
r.setId("id1");
r.setRoleName("rolename1");
list.add(r);
r = new RoleConfig();
r.setId("id2");
r.setRoleName("rolename2");
list.add(r);
r = new RoleConfig();
r.setId("id3");
r.setRoleName("rolename3");
list.add(r);
List<CommonBean> nList = extractNalueName(list);
System.out.println(nList);
}
private static void testModule(){
List<Module> list = new ArrayList<Module>();
Module m = new Module();
m.setAuth("auth1");
m.setName("name1");
list.add(m);
m = new Module();
m.setAuth("auth2");
m.setName("name2");
list.add(m);
m = new Module();
m.setAuth("auth3");
m.setName("name3");
list.add(m);
List<CommonBean> nList = extractNalueName(list);
System.out.println(nList);
}
}