Java泛型方法,返回泛型类型实例

package com.study.generics;

//通过泛型方法,返回泛型类型实例
public class GenericsMethodDemo02 {
	
	public static void main(String []args) {
		
		GenericsMethodBackInstace demo02 = genericStaticMethod(100.33f);//如果传入100f则打印00.0
		System.out.println(demo02.getVariable());
		
		GenericsMethodDemo02 demo= new GenericsMethodDemo02();
		GenericsMethodBackInstace demo03 = demo.genericMethod(100);
		System.out.println(demo03.getVariable());
		
		//==================================
		//因为泛型方法在GenericsMethodDemo02类型中定义则实例化调用本类的泛型方法
		//在使用泛型方法返回实例化的类返回数据
		GenericsBackInstace demo04 = demo.geneMethod("泛型方法返回泛型类型实例化");
		System.out.println(demo04.getVariable());
	}
	
	//为什么泛型的方法命名: public <泛型类> 返回泛型方法类  泛型方法命名
	//方法中传入或返回的泛型类型由调用方法时所设置的参数类型决定
	public static  GenericsMethodBackInstace genericStaticMethod(Type t) {
		GenericsMethodBackInstace instace = new GenericsMethodBackInstace();
		instace.setVariable(t);	//通过泛型方法传递参数,返回泛型实例
		return instace;
	}
	public   GenericsMethodBackInstace genericMethod(Type t) {
		GenericsMethodBackInstace instace = new GenericsMethodBackInstace();
		instace.setVariable(t);	//通过泛型方法传递参数,返回泛型实例
		return instace;
	}
	
	//================================================================
	public  GenericsBackInstace geneMethod(Type t) {
		GenericsBackInstace instace = new GenericsBackInstace();
		instace.setVariable(t);
		return instace;
	}
	
}

class GenericsMethodBackInstace {	//泛型受限制,中哦中的T 可以自定义
	private Type variable;	//T type简称
	
	public Type getVariable() {
		return this.variable;
	}
	
	public Type setVariable(Type variable) {
		return this.variable=variable;
	}
}

class GenericsBackInstace {	//泛型受限制,中哦中的Type可以自定义如:Info,Object,String
	private Type variable;	//T type简称
	
	public Type getVariable() {
		return this.variable;
	}
	
	public Type setVariable(Type variable) {
		return this.variable=variable;
	}
}

 

你可能感兴趣的:(J2SE)