切换为java 1.6的字符串类型

这个问题在这里已经有了答案:

  • 为什么我不能打开一个字符串? 14个答案

  • 你甚至可以让enum为你做:

    public static void main(String[] args) throws InterruptedException {
        String typeName = "Boolean";
        String memberValue = "memberValue";
        SwitchInputType type = Type.valueOf(typeName).makeType(memberValue);
    }
    
    enum Type {
        Boolean {
            SwitchInputType makeType(String memberValue) {
                return new SwitchInputType<Boolean>(new Boolean(memberValue));
            }
        },
        Double {
            SwitchInputType makeType(String memberValue) {
                return new SwitchInputType<Double>(new Double(memberValue));
            }
        }, 
        Int32 {
            SwitchInputType makeType(String memberValue) {
                return new SwitchInputType<Integer>(new Integer(memberValue));
            }
        };
    
        // All must do this.
        abstract SwitchInputType makeType(String memberValue);
    }
    
    static class SwitchInputType<T> {
        public SwitchInputType(Object o) {
        }
    }
    

    因为你的字符串都是有效的标识符,你可以用这些字符串作为项目标签创建一个枚举,使用Enum.valueOf(Class,String)(或者将在你的枚举类中创建的类似的valueOf(String)方法)来转换到枚举类型的成员,然后切换到基于...

    例:

    enum TypeName { Boolean, Double, Int32 }
    
    switch (TypeName.valueOf(typeName)) {
       case Boolean: // ...
       case Double: // ...
       case Int32: // ...
    }
    

    Ankur已经提出了一种方法。 另一种方式是将这些定义为常量。 Ex - 私有静态最终字符串BOOLEAN =“1”;

    开关(Integer.parseInt(BOOLEAN))情况1:...

    案例2:...

    等等。

    链接地址: http://www.djcxy.com/p/84503.html

    上一篇: switch for type string for java 1.6

    下一篇: Cannot put "default" to switch block