`

黑马程序员18-2:自定义泛型类、方法

 
阅读更多

------- android培训 java培训、期待与您交流!-------


package cn.itcast.p4.generic.define.demo;

import cn.itcast.p2.bean.Student;
import cn.itcast.p2.bean.Worker;

public class GenericDefineDemo3 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		
		Tool<Student> tool = new Tool<Student>();
		
//		tool.setObject(new Worker());
//		Student stu = tool.getObject();
//		Tool tool = new Tool();		
//		tool.setObject(new Worker());		
//		Student stu = (Student)tool.getObject();
		
		
	}

}


package cn.itcast.p4.generic.define.demo;

public class GenericDefineDemo4 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		
		Tool<String> tool = new Tool<String>();
		
		tool.show(new Integer(4));
		tool.show("abc");
		tool.print("hahah");
//		tool.print(new Integer(8));
		Tool.method("haha");
		Tool.method(new Integer(9));
	}
}


package cn.itcast.p4.generic.define.demo;

public class GenericDefineDemo5 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		InterImpl in = new InterImpl();
		in.show("abc");
		
		InterImpl2<Integer> in2 = new InterImpl2<Integer>();
		in2.show(5);
	}
}

//泛型接口,将泛型定义在接口上。 
interface Inter<T>{
	public void show(T t);
}

class InterImpl2<Q> implements Inter<Q>{
	public void show(Q q){
		System.out.println("show :"+q);
	}
}

class InterImpl implements Inter<String>{
	public void show(String str){
		System.out.println("show :"+str);
	}
}


package cn.itcast.p4.generic.define.demo;

/*
public class Tool {

	private Object object;

	public Object getObject() {
		return object;
	}

	public void setObject(Object object) {
		this.object = object;
	}
	
}
*/
//在jdk1.5后,使用泛型来接收类中要操作的引用数据类型。
//泛型类。什么时候用?当类中的操作的引用数据类型不确定的时候,就使用泛型来表示。 


public class Tool<QQ>{
	private QQ q;

	public QQ getObject() {
		return q;
	}

	public void setObject(QQ object) {
		this.q = object;
	}
	
	
	/**
	 * 将泛型定义在方法上。
	 * @param str
	 */
	public <W> void show(W str){
		System.out.println("show : "+str.toString());
	}
	//泛型的变量不能用length等方法,但是可以使用Object的方法
	public void print(QQ str){
		System.out.println("print : "+str);
	}
	
	/**
	 * 当方法静态时,不能访问类上定义的泛型。如果静态方法使用泛型,
	 * 只能将泛型定义在方法上。 
	 * @param obj
	 */
	public static <Y> void method(Y obj){
		System.out.println("method:"+obj);
	}
}


------- android培训 java培训、期待与您交流!-------


详细请查看:http://edu.csdn.net/heima -------
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics