r java 泛型_java泛型学习示例

package com.garinzhang.javabase.generic.e11;

/**

* 接受两个泛型类型

* @author Garin Zhang

*

* @param

*/

public class Info {

private T var;

private V value;

public T getVar() {

return this.var;

}

public void setVar(T var) {

this.var = var;

}

public V getValue(){

return this.value;

}

public void setValue(V value) {

this.value = value;

}

@Override

public String toString() {

return this.var.toString();

}

}

package com.garinzhang.javabase.generic.e11;

/**

* 接受1个泛型类型

* @author Garin Zhang

*

* @param

*/

public class Demo {

private S info;

public Demo(S info) {

this.setInfo(info);

}

public void setInfo(S info) {

this.info = info;

}

public S getInfo() {

return this.info;

}

}

package com.garinzhang.javabase.generic.e11;

import java.util.List;

import com.google.common.collect.Lists;

public class GenericExample {

/**

* @param args

*/

public static void main(String[] args) {

Demo> d;

Info i;

i = new Info();

i.setVar("Coder");

i.setValue(999);

d = new Demo>(i);

System.out.println("Content: " + d.getInfo().getVar());

System.out.println("Content: " + d.getInfo().getValue());

System.out.println(query(1, 2, 3, 4, 5).toString()); // [1, 2, 3, 4, 5]

// 警告"Type safety: A generic array of Object&Comparable>&Serializable is created for a varargs parameter"

System.out.println(query(1, 2, 3, "StringType").toString()); // [1, 2, 3, StringType]

System.out.println(query("I ", "am ", "a ", "coder").toString());// [I , am , a , coder]

List list = Lists.newArrayList("I ", "am ", "a ", "coder");

System.out.println(list.toString()); // [I , am , a , coder]

}

/**

* 通过返回值确定泛型类型,这个方法里面的返回值类型,是由方法的定义自动生成的

* @param elements

* @return

*/

public static List query(E... elements) {

// https://github.com/exitsoft/exit-web-framework/commit/1d2f1098a2a4b6abab175b793e2308aa8bd0ea16.

// import com.google.common.collect.Lists;

//

// com.google.guava

// guava

// 16.0.1

//

return Lists.newArrayList(elements);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值