泛型-java编程思想笔记
来源:互联网 发布:mac os 10.12自带壁纸 编辑:程序博客网 时间:2024/06/06 04:05
1,泛型定义
package com.jing.test1;
public class Holder3<T> {
private T a;
/**
* @return the a
*/
public T getA() {
return a;
}
/**
* @param a
* the a to set
*/
public void setA(T a) {
this.a = a;
}
public static void main(String[] args) {
Holder3<Automobile> h3 = new Holder3<Automobile>();
h3.setA(new Automobile());
}
}
泛型,即参数化类型,使得代码更加的通用。不在局限于某个类或者接口,使得方法更加的松耦合。
2,泛型的目的
泛型的目的之一就是用来指定容器类要持有什么类型的对象,而且由编译器保证类型的正确性。
泛型的核心理念就是告诉编译器你想使用什么类型,然后编译器帮你处理一切细节。
如下的三段代码,完全可以看出使用泛型的优势:
package com.jing.test1;
public class Automobile {
private Automobile a;
/**
* @return the a
*/
public Automobile getA() {
return a;
}
/**
* @param a
* the a to set
*/
public void setA(Automobile a) {
this.a = a;
}
}
public class Automobile {
private Automobile a;
/**
* @return the a
*/
public Automobile getA() {
return a;
}
/**
* @param a
* the a to set
*/
public void setA(Automobile a) {
this.a = a;
}
}
package com.jing.test1;
public class Holder2 {
private Object a;
/**
* @return the a
*/
public Object getA() {
return a;
}
/**
* @param a
* the a to set
*/
public void setA(Object a) {
this.a = a;
}
public static void main(String[] args) {
Holder2 h2 = new Holder2();
h2.setA(new Automobile());
}
}
private Object a;
/**
* @return the a
*/
public Object getA() {
return a;
}
/**
* @param a
* the a to set
*/
public void setA(Object a) {
this.a = a;
}
public static void main(String[] args) {
Holder2 h2 = new Holder2();
h2.setA(new Automobile());
}
}
package com.jing.test1;
public class Holder3<T> {
private T a;
/**
* @return the a
*/
public T getA() {
return a;
}
/**
* @param a
* the a to set
*/
public void setA(T a) {
this.a = a;
}
public static void main(String[] args) {
Holder3<Automobile> h3 = new Holder3<Automobile>();
h3.setA(new Automobile());
}
}
3,元组:
元组(tuple),将一组对象直接打包存储于某单衣对象中。
package com.jing.test2;
/**
*
* @ClassName: TwoTuple
* @Description: 当前元组对象持有两个对象
* @author JerryJing
* @date 2014年5月18日 下午2:59:35
* @version V1.0
* @param <A>
* @param <B>
*/
public class TwoTuple<A, B> {
public final A first;//申明为final,实现安全性
public final B second;
/**
*
* <p>
* Title:TwoTuple.java
* </p>
* <p>
* Description: 构造函数
* </p>
*
* @param first
* @param second
*/
public TwoTuple(A first, B second) {
super();
this.first = first;
this.second = second;
}
/**
* toString
*/
@Override
public String toString() {
return "TwoTuple [first=" + first + ", second=" + second + "]";
}
}
*
* @ClassName: TwoTuple
* @Description: 当前元组对象持有两个对象
* @author JerryJing
* @date 2014年5月18日 下午2:59:35
* @version V1.0
* @param <A>
* @param <B>
*/
public class TwoTuple<A, B> {
public final A first;//申明为final,实现安全性
public final B second;
/**
*
* <p>
* Title:TwoTuple.java
* </p>
* <p>
* Description: 构造函数
* </p>
*
* @param first
* @param second
*/
public TwoTuple(A first, B second) {
super();
this.first = first;
this.second = second;
}
/**
* toString
*/
@Override
public String toString() {
return "TwoTuple [first=" + first + ", second=" + second + "]";
}
}
0 0
- 泛型-java编程思想笔记
- JAVA编程思想笔记--泛型
- Java编程思想 笔记
- 《java编程思想》笔记
- java编程思想笔记
- Java编程思想笔记
- java编程思想笔记
- java编程思想 笔记
- java编程思想笔记
- java 编程思想 笔记
- 《Java编程思想》笔记
- Java编程思想 笔记
- java编程思想笔记
- java编程思想笔记
- java 编程思想笔记
- java 编程思想 笔记
- Java编程思想笔记
- 看"java编程思想"笔记
- C# 反射详解:定义、创建对象、调用实例方法及静态方法
- 使用DBUtils编写通用的DAO【很有价值】
- Label Propagation Algorithm(LPA)
- 透析Java本质-谈类型转换的神秘
- judge loop in undirected graph
- 泛型-java编程思想笔记
- 创建oracle用户
- Oracle Flashback(闪回) 详解.
- 使用 pt-online-schema-change 修改大表时异常退出 Exiting on SIGHUP 的问题
- 适配器模式
- Java常用类一
- 睡着的国王的故事
- 黑马程序员——关于输入流的read方法。
- 杂草人生