有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在不使用枚举的情况下编写干净的代码

我有一个枚举如下

public enum ProductType{

 P1("Pone")
 P2("Ptwo")

 public String value;

  public String getValue(){
      return value;
  } 

 public Product fromValue(Brand b){
     if(b.equals("A")){
         return P1;
     else
         return P2
     }
}

下面是我如何使用它

Class ABC{

        public String getProductName(Brand b){
           return ProductType.fromValue(b).getName();
      }
}

如何在不使用枚举的情况下实现相同的功能。我希望能够在不使用枚举的情况下从brand返回ProductName


共 (1) 个答案

  1. # 1 楼答案

    不清楚为什么要避免枚举,但这里有一个相当于Java-5之前的版本。你的代码错误百出,所以我做了一些假设和更正:

    public class ProductType {
        public static final ProductType P1 = new ProductType("Pone");
        public static final ProductType P2 = new ProductType("Ptwo");
    
        private final String value;
    
        private Product(String value) {
            this.value = value;
        }
    
        public String getValue() {
            return this.value;
        }
    
        public ProductType fromValue(String value) {
            return value.equals(P1.value) ? P1
                   value.equals(P2.value) ? P2 : null;
        }
    }