提供一个思路。。
用一个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 来比较。
//执行你的比较。
               }

解决方案 »

  1.   

    这个方法会被很多地方调用,传递一个list.这个list在传来时是泛型的..
      

  2.   


    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);
    }
    }