泛型与EnumMap使用例子

来源:互联网 发布:手机淘宝怎么交电费 编辑:程序博客网 时间:2024/06/04 18:58


public class Test <T>{
    private T a;
    public Test(T a){this.a = a;}
    public T getA() {
        return a;
    }
    public void setA(T a) {
        this.a = a;
    }
    
    public static void main(String[] args){
        Test<Integer> test = new Test<Integer>(2);
        System.out.println(test.getA());
    }

}


在类名称上要指定下使用泛型,要不里面的会不知道T的类型。


泛型与可变参数的使用

  public class GenericVarargs{
        public static <T> List<T> makeList(T ... args){
            List<T> result = new ArrayList<T>();
            for( T item : args){
                result.add(item);
            }
            return result;
        }
    }

一个类生成器




 class BasicGenerator <T> implements Generator {


    private Class<T> type;


    public BasicGenerator(Class<T> type){
        this.type = type;
    }
    @Override
    public T next() {
        try {
            return type.newInstance();
        } catch (Exception e) {
            throw new RuntimeException(e);
        } 
    }
    public static <T> Generator<T> create(Class<T> type){
        return new BasicGenerator<T>(type);
    }
    
}


class CountedObject{
    private static long counter =0;
    private final long id=counter++;
    public long id(){
        return id;
    }
    public String toString(){
        return "CountedObject" +id;
    }
}


 public class BasicGeneratorDemo{
    public static void main(String[] args){
        Generator<CountedObject> gen = BasicGenerator.create(CountedObject.class);
        for(int i=0; i< 5; i++){
            System.out.println(gen.next());
        }
    }
}



下面是enummap的使用例子

public class EnumMaps {
    
    interface Command{void action();}
   public enum AlarmPoints{
        beijing,
        shanghai,
        shengzhen
    }
   
   public enum ConstantSpecificMethod{
       
       DATE_TIME {
           String getInfo(){
               return DateFormat.getDateInstance().format(new Date());
           }
       }
   ,
   
       CLASSPATH {
       String getInfo(){
           return System.getenv("CLASSPATH");
       }
   };
   
   abstract String getInfo();
   
}
    public static void main(String[] args){
        for(ConstantSpecificMethod csm : ConstantSpecificMethod.values())
            System.out.println(csm.getInfo());
        
        EnumMap<AlarmPoints,Command> em = new EnumMap<AlarmPoints,Command>(AlarmPoints.class);
        em.put(AlarmPoints.beijing, new Command(){
            public void action(){
                System.out.println("ketchen fire");
            }
        });
        
        em.put(AlarmPoints.shanghai, new Command(){
            public void action(){
                System.out.println("hahaha");
            }
        });
        
        for(Map.Entry<AlarmPoints, Command> e: em.entrySet()){
            System.out.println(e.getKey()+" ");
            e.getValue().action();
        }
        
        
    }
}

0 0
原创粉丝点击