枚举在JavaBean中有没有getter和setter方法,要怎样在业务逻辑层里调用enum中的值呢???

解决方案 »

  1.   

    使用反射调用方法,lz可以参考一下JDK API。
      

  2.   

    枚举(enum): 
    1.Java 5 新增,是类类型,但不能使用new 
    不能继承其他类,也不能作为超类,即不能扩展.但隐式继承自java.lang.Enum类,可以实现接口. 
    2.枚举包括两个预定义方法: 
    public static enum-type[] values(); 
    public static enum-type valueOf(String st); 用于for-each循环遍历枚举常量. 
    且可以用”==”来判断两个枚举常量是否相等. 
    从Enum继承而来三个方法: 
    final int ordinal() ----返回常量顺序值 
    final int compareTo(enum-Type e) -----同一枚举中比较顺序值 
    final Boolean equals(enum-type e) -----同一枚举中是否相等,相当于”==” 
    3.在switch表达示中case语句不需也不能加入枚举的类型,否则会出错. 
    4.枚举是类类型,可以定义构造函数,且可以重载,同样也可定义其他的实例方法和变量,这些每一个枚举常量都有自己的一个副本.甚至可以定义静态的成员.可以实现接口. 
    如:public enum Answer implements DoAnswer{ 
    Perfect(10),Good(8),Common(5),Bad(2),Terrible;//枚举常量,相当于public static Answer类型 
    public static int type=1; //定义一个静态成员 
    private int degree; //定义一个实例成员变量 
    private Answer(){ //定义一个不带参数的构造函数,注只能为private的,默认也一样 
    degree=-1; 

    private Answer(int d){ //定义一个带参数的重载构造函数 
    degree=d; 

    public String getProblem(){ //实现接口方法 
    return DoAnswer.PROBLEM; 

    public int getDegree(){ //定义一个实例成员函数 
    return degree; 

    public Answer getAnswer(){ //定义一个返回自身的成员函数,每一个常量都有自己的副本 
    return this; 

      

  3.   

    在使用 enum 关键字创建新的枚举类型时,实际上是在创建 java.lang.Enum 类的子类
    enum Size {Small, Medium, Large} 将映射到下面所示的构造函数调用中:   new Enum<Size>("Small", 0);  new Enum<Size>("Medium", 1);  new Enum<Size>("Large", 2);
    关于枚举的两个例子
    public class Student {
      private String firstName;
      private String lastName;
      private static Grade grade;
      
      public Student(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
      }
      public void setFirstName(String firstName) {
        this.firstName = firstName;
      }
      public String getFirstName() {
        return firstName;
      }
      public void setLastName(String lastName) {
        this.lastName = lastName;
      }
      public String getLastName() {
        return lastName;
      }
      public String getFullName() {
        return new StringBuffer(firstName)
               .append(" ")
               .append(lastName)
               .toString();
      }
      public static void assignGrade(Grade grade2) {
       grade = grade2;
      }
      public Grade getGrade() {
        return grade;
      }
      
      public enum Grade {
          A, B, C, D, F, INCOMPLETE
        };
        public static void main(String[] args) {
            grade = Grade.A;
            System.out.println(grade);
            assignGrade(Grade.B);
            System.out.println(grade);
            System.out.println();
        }
    }
    输出Bpublic class Sample {
      enum Size {
        Small('a'),
        Medium('b'),
        Large('c');
        char pricingFactor;  public char getPricingFactor() {      return pricingFactor;
        }
        Size(char p) {
          pricingFactor = p;
        }
      }
      enum Size2{
          Small(0.8,0.9),
          Medium(1.0,1.1),
          Large(1.2,1.3);
          Double a,b;
          Size2(double p,double q){this.a=p;this.b=q;}
      }
      
      public static void main(String args[]) {
        Size s = Size.Large;
        char d = s.pricingFactor;
        System.out.println(s + " Size has pricing factor of " + d);
        Size2 s2=Size2.Large;
        double e=s2.a;
        System.out.println(e);
      }
    }
    输出
    Large Size has pricing factor of c
    c
    1.2enum Size {Small, Medium, Large} 将映射到下面的构造函数调用中:  new Enum<Size>("Small", 0);  new Enum<Size>("Medium", 1);  new Enum<Size>("Large", 2);遍历枚举值public void listGradeValues(PrintStream out) throws IOException {  for (Grade g : Grade.values()) {    out.println("Allowed value: '" + g + "'");  }}java.util 程序包中包含两个类:EnumMap 和 EnumSet,这两个类有助于使处理枚举类型变得更容易一些。EnumMap 类提供了 java.util.Map 接口的一个特殊实现,该接口中的键(key)是一个枚举类型。EnumSet 类提供了 java.util.Set 接口的实现,该接口保存了某种枚举类型的值的集合。
    import java.util.*;
    public class EnumMapSample {
      enum Size {
        Small,
        Medium,
        Large;
      }
      public static void main(String args[]) {
        Map<Size, Double> map = new EnumMap<Size, Double>(Size.class);
        map.put(Size.Small, 0.8);
        map.put(Size.Medium, 1.0);
        map.put(Size.Large, 1.2);
        for (Map.Entry<Size, Double> entry : map.entrySet()) {
          helper(entry);
        }
      }
      private static void helper(Map.Entry<Size, Double> entry) {
        System.out.println("Map entry: " + entry);
      }
    }
    输出
    Map entry: Small=0.8
    Map entry: Medium=1.0
    Map entry: Large=1.2
      

  4.   

    http://blog.csdn.net/YidingHe/archive/2009/04/11/4064816.aspx