1.尝试定义一个枚举类型类,使用switch语句获取枚举类型的值。
package com.lzw;
public class UseCase1 {
enum Constants2 { // 将常量放置在枚举类型中
Constants_A, Constants_B
}
// 定义一个方法,这里的参数为枚举类型对象
public static void doit2(Constants2 c) {
switch (c) { // 根据枚举类型对象做不同操作
case Constants_A:
System.out.println("doit2() Constants_A");
break;
case Constants_B:
System.out.println("doit2() Constants_B");
break;
}
}
public static void main(String[] args) {
UseCase1.doit2(Constants2.Constants_A);
UseCase1.doit2(Constants2.Constants_B);
}
}
2.尝试定义一个泛型类,使用extends关键字限制该泛型类的类型为List接口,并分别创建两个泛型对象。
package com.lzw;
import java.util.*;
public class UseCase2<T extends List> {
public static void main(String[] args) {
UseCase2<ArrayList> l1 = new UseCase2<ArrayList>();
UseCase2<LinkedList> l2 = new UseCase2<LinkedList>();
// LimitClass<HashMap> l3=new LimitClass<HashMap>();
}
}
3.尝试定义一个泛型类,并使用通配符。
package com.lzw;
import java.util.*;
public class UseCase3<T> {
public void doSomething(UseCase3<? extends List<Object>> a) {
System.out.println(a.getClass().getName());
}
public static void main(String[] args) {
// TODO 自动生成方法存根
UseCase3<? extends List<Object>> a = new UseCase3<ArrayList<Object>>();
a.doSomething(new UseCase3<ArrayList<Object>>());
a.doSomething(new UseCase3<LinkedList<Object>>());
UseCase3<? super List<Object>> a2 = null;
a2 = new UseCase3<Object>();
}
}