泛型示例及说明:
package com.generator;
import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
/**
* 泛型类
* @param <T>
*/
public class Tool<T> {
private T t;
public T getObject() {
return t;
}
public void setObject(T object) {
this.t = object;
}
/**
* 将泛型定义在方法上。
*
* @param str
*/
public <W> void show(W str) {
System.out.println("show : " + str.toString());
}
//方法使用类上定义的泛型
public void print(T str) {
System.out.println("print : " + str);
}
/**
* 当方法静态时,不能访问类上定义的泛型。如果静态方法使用泛型,
* 只能将泛型定义在方法上。
*
* @param obj
*/
public static <Y> void method(Y obj) {
System.out.println("method:" + obj);
}
public static void main(String[] args) {
HashMap<Object, Object> objHashMap = new HashMap<>();
objHashMap.put("key1", "value1");
Tool hashMapTool = new Tool();
//设置泛型属性
hashMapTool.setObject(objHashMap);
System.out.println(JSONObject.toJSONString(hashMapTool.getObject()));
//调用非静态泛型方法
hashMapTool.show("123");
hashMapTool.show(objHashMap);
hashMapTool.print(objHashMap);
//调用静态泛型方法
hashMapTool.method("456");
}
}