`
jxfsuda
  • 浏览: 5460 次
  • 来自: ...
社区版块
存档分类
最新评论

Java 传递枚举类名,遍历枚举

 
阅读更多

场景:

       实体中使用了枚举,这些东西在页面表现为一个下拉选择框.如何通用,是我要想的

 

代码:

Class cls = Class.forName(className);
            //这里直接判定枚举类型的一个特性,就是总是继承Enum这个超类
            if(cls.getSuperclass()!=null && Enum.class.getName().equals(cls.getSuperclass().getName())){
               
                Class<Enum> enumClass = (Class<Enum>)cls;
               
                //获取枚举的所有属性对象集合
                EnumSet es =EnumSet.allOf(enumClass);
               
                 Object[] objs = es.toArray();
                 String enumLabelName = null;
                 StringBuilder builder = new StringBuilder();
                 String equalsValue;
                for (int i = 0; i < objs.length; i++) {
                    Object object = objs[i];
                    if(object instanceof EnumInterface){  //这个接口是我们的枚举规范,总是要实现这个接口,返回一个字符串说明
                        EnumInterface ei = (EnumInterface)object;
                        enumLabelName = ei.getName();
                    }
                    if(enumLabelName==null){
                        enumLabelName = object.toString();
                    }
                    equalsValue = i+"";
                    if(useOrdinal!=null){
                        equalsValue = object.toString();
                    }
                    builder.append("<option value='"+object.toString()+"' " +
                            (currentValue!=null && currentValue.equals(equalsValue)?" selected ":"") +
                            ">"+enumLabelName+"</option>");
                    enumLabelName = null;
                }
                Struts2Utils.renderHtml(builder.toString());

 

 

 

//发挥一下 , 利用struts 的 <s:action executeResult="true"> 这个标签,可以形成统一的调用接口

分享到:
评论

相关推荐

    Java虚拟机1.5

    2. **枚举类型**:在Java 1.5之前,枚举通常通过常量类实现,而Java 5引入了内置的枚举类型,使得枚举更易于使用和管理,且支持更多的面向对象特性,如继承和方法。 3. **自动装箱与拆箱**:Java 5引入了自动装箱和...

    Java API_5.0简体中文版

    6. **静态导入(Static Import)**:允许将类的静态成员直接引入到当前作用域,避免了使用类名来调用静态方法或字段,如`import static java.lang.Math.*;` 7. **变量枚举(Varargs)**:在方法签名中使用`...`表示...

    JAVA 1.5 API 文档

    2. **枚举(Enums)**:Java 1.5引入了枚举类型,用于替代传统的常量类,提供了更好的类型安全性和代码可读性。枚举可以有方法、构造器,并且可以实现接口。 3. **自动装箱与拆箱(Autoboxing and Unboxing)**:此...

    java jdk1.5

    Java 1.5之前,枚举通常通过常量类实现,而1.5版本引入了枚举类型,使枚举成为一种正式的类型,支持方法和变量,增强了枚举的可读性和安全性。 四、变量类型推断(Varargs) 变长参数(Varargs)允许在一个方法调用...

    java新特性简介.ppt

    从Java 1.5开始,可以使用可变长参数(varargs)作为方法参数,允许传递零个或多个同类型的参数。例如,`void sum(int... n)`,这与main方法接受字符串数组参数的方式类似。可变长参数必须是方法参数列表中的最后一...

    传智播客java基础加强(佟刚)

    6. **枚举类**:Java中的枚举类是一种特殊的类,通常用于表示有限的固定数量的实例,如季节、星期等。枚举类默认继承自`Enum`类,其构造器默认为私有,枚举值在类中显式声明,并自动添加`public static final`修饰。...

    JAVA_API5.0.rar_api jdk5.0_java api5_java api5.0_jdk 5.0 API_jdk

    2. **枚举类型(Enums)**:Java 5.0之前,常量通常通过public static final变量来实现,但这种方式存在一些缺点。枚举类型提供了一种更安全、更易用的方式来定义一组相关的常量,支持枚举实例的方法和比较操作。 3...

    corejava12示例代码

    《CoreJava12示例代码》是一份针对Java编程语言深度学习的重要资源,主要涵盖了CoreJava12版本中的核心概念和特性。这份压缩包文件包含了丰富的示例代码,旨在帮助开发者深入理解Java语言的各个方面,提升编程技能。...

    Java基础加强Java基础加强Java基础加强

    枚举类的实例默认是`public static final`的,且枚举类默认继承自`java.lang.Enum`。枚举类还可以拥有方法和属性,并可以实现接口,实现多态行为。 6. **枚举类的属性和方法**:枚举类的属性通常应声明为`private ...

    良葛格java jdk 5.0学习笔记

    3. **枚举类型(enum)**:在JDK 5.0之前,Java中的枚举通常通过常量类实现,而JDK 5.0引入了枚举关键字,提供了更强大的枚举类型,支持方法、构造函数等,增强了枚举的表达能力。 4. **变量注解(Annotations)**...

    Java 高级特性.doc

    静态导入允许我们将类中的静态成员直接作为当前类的一部分来使用,而不必每次都指定类名。例如,在示例中,如果不使用`import static`导入`Integer.parseInt`,程序会因找不到方法而报错。正确的做法是使用`import ...

    day17 java

    4. **可变参数**:允许多个参数以逗号分隔的形式传递,如`void printNumbers(int... numbers)`。 5. **枚举**:创建固定的常量集合,增强类型安全。 6. **泛型**:提供类型参数化,增强了代码的复用性和安全性。 ...

    EnumWindows-枚举桌面窗口

    1. 使用`EnumWindows`枚举所有窗口,通过比较窗口的标题或类名来找到目标窗口。 2. 一旦找到目标窗口,可以使用`GetWindowDC`获取窗口设备上下文(Device Context,DC)。 3. 使用`BitBlt`或`StretchBlt`函数将窗口...

    阿里巴巴java开发手册(嵩山版).pdf

    - **反例**:直接使用数字`100`作为参数传递,缺乏灵活性。 2. **枚举类型**:对于固定的一组值,使用枚举类型代替字符串或整数,如`public enum StatusCode { OK, ERROR };`。 - **说明**:枚举类型可以提供类型...

    java JDK1.5---32位和64位

    3. **枚举(Enums)**:Java 1.5引入了枚举类型,提供了对常量集合的强类型支持,增强了代码的可读性和安全性。 4. **变量注解(Varargs)**:允许在方法参数列表中使用省略号(...),表示可变长度的参数,简化了...

    Java面试资料,一套带走

    `switch`语句可以作用于`byte`、`short`、`int`、`char`,从Java 7开始还可以作用于枚举类型,从Java 7的增强版开始,可以作用于`String`。 4. **重写与重载的区别** - **重写(Overriding)**:发生在父类和子类...

    java 5chm帮助文档中文档

    Java 5 CHM帮助文档是Java开发者的重要参考资料,它涵盖了Java 5版本的全面知识,包括语言特性、类库、API以及编程指南等。CHM(Compiled Help Manual)是Microsoft开发的一种帮助文件格式,用于存储和查看离线帮助...

    JAVA编程基础50题

    14. **枚举**:枚举类型用于定义一组固定的常量,提供了比常量更强大的功能。 15. **注解**:注解用于提供元数据,可以被编译器或JVM在运行时解析。 16. **接口**:接口是一种完全抽象的类型,用于定义多个类共享...

    良葛格Java JDK 5.0学习笔记ch01

    在Java 5.0之前,枚举通常通过常量类实现,这导致了一些局限性。而JDK 5.0引入的枚举类型提供了一种更安全、更强大且更易于使用的机制。枚举可以包含构造函数、方法和常量,它们是类的实例,可以与其他对象交互。...

Global site tag (gtag.js) - Google Analytics