泛型与EnumMap使用例子
2015-01-21 21:21
218 查看
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();
}
}
}
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();
}
}
}
相关文章推荐
- 使用数组元素倒置来讲解泛型的经典例子
- C#中关于在Quene集合类中使用泛型的例子
- 使用ActiveRecord的三层构架及泛型例子
- C#中关于在LinkedList集合类中使用泛型的例子
- java基础总结 -- 泛型 在类、接口、方法、匿名类、元组等使用 堆栈例子 商店模型
- 泛型使用一例子
- C#中关于在List集合类中使用泛型的例子
- EnumMap使用小例子
- c#打包文件解压缩 C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法 一个简单例子理解C#的协变和逆变 对于过长字符串的大小比对
- 使用泛型算法的例子, 使用了函数对象
- 使用ActiveRecord的三层构架及泛型例子
- 泛型使用,及 动态显示多个类的属性名与值的 例子
- 使用泛型方法打印不同字符串的元素(泛型例子学习)
- SAP ABAP/4学习--学习使用OO在ABAP中.简单入门概念.用个例子来说明
- 【专题】window.open的例子和使用方法以及参数说明(完整版)
- 一个使用递归函数的例子
- SimpleDateFormat函数使用的例子
- java network programming Listener 例子 在loopmsn使用了
- 使用JSP + JAVABEAN + XML 开发的一个例子
- CodeProject - 在C#使用SHGetFileInfo获取(管理)文件或者文件夹图标(C#封装Win32函数的一个例子)