008 The Generics In JAVA
泛型是JAVA的核心特型之一,我们先看一个例子:
没有使用泛型前,如下:
import java.util.ArrayList;
import java.util.List; public class GenericsStu {
public static void main(String[] args) { List list = new ArrayList();
String name = "gavin";
Integer age = 5;
list.add(name);
list.add(age); for (Object obj : list) {
String str = (String) obj; // Exception in thread "main"
// java.lang.ClassCastException:
// java.lang.Integer cannot be cast to
// java.lang.String
}
}
}
使用泛型后如下:
import java.util.ArrayList;
import java.util.List; public class GenericsStu {
public static void main(String[] args) { List<String> list = new ArrayList<String>();
String name = "gavin";
Integer age = 5;
list.add(name);
list.add("hello");
list.add(age);//这个在编译时就提示类型不匹配,如果用的是eclipse,会及时显示错误,避免了运行时异常。 for (String str : list) {
System.out.println(str); }
}
}
泛型也可以用于Class,例如:
使用泛型前,是这样的:
public class GenericsStu { private Object t; public Object get() {
return t;
} public void set(Object t) {
this.t = t;
} public static void main(String args[]){
GenericsStu type = new GenericsStu();
type.set(2);
String str = (String) type.get(); //Exception in thread "main" java.lang.ClassCastException:
//java.lang.Integer cannot be cast to java.lang.String
System.out.println(str);
}
}
使用泛型后,是这样的:
public class GenericsStu<T> { private T t; public T get(){
return this.t;
} public void set(T t){
this.t=t;
} public void print(){
System.out.println(t);
} public static void main(String args[]){
GenericsStu<String> type = new GenericsStu<String>();
type.set("gavin");
type.print();//Output is:gavin
type.set(2); //编译就不通过,避免了运行时java.lang.ClassCastException
type.print(); }
}
008 The Generics In JAVA的更多相关文章
- thinking in java Generics Latent typing
The beginning of this chapter introduced the idea of writing code that can be applied as generally a ...
- Java ConcurrentHashMap Example and Iterator--转
原文地址:http://www.journaldev.com/122/java-concurrenthashmap-example-iterator#comment-27448 Today we wi ...
- Thinking in Java——笔记(15)
Generics The term "generic" means "pertaining or appropriate to large groups of class ...
- Java深度历险(五)——Java泛型
作者 成富 发布于 2011年3月3日 | 注意:QCon全球软件开发大会(北京)2016年4月21-23日,了解更多详情!17 讨论 分享到:微博微信FacebookTwitter有道云笔记邮件 ...
- 在Android中使用Java 8的lambda表达式
作为一名Java开发者,或许你时常因为缺乏闭包而产生许多的困扰.幸运的是:Java's 8th version introduced lambda functions给我们带来了好消息;然而,这咩有什 ...
- Effective Java Index
Hi guys, I am happy to tell you that I am moving to the open source world. And Java is the 1st langu ...
- [CareerCup] 14.4 Templates Java模板
14.4 Explain the difference between templates in C++ and generics in Java. 在Java中,泛式编程Generic Progra ...
- java基础之 泛型
泛型(Generic type 或者generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法 ...
- Java之泛型练习
package cn.itcast.generics; import java.util.Comparator; import java.util.Iterator; import java.util ...
随机推荐
- .NET_RSA加密全接触(重、难点解析)
.NET_RSA加密全接触(重.难点解析) .NET Framework提供了两个类供我们使用RSA算法,分别是:用于加密数据的RSACryptoServiceProvider和用于数字签名的DSAC ...
- DIV中的垂直居中
<div style="border:0px #ff0000 solid; width:100px;height:380px; line-height:380px; float:lef ...
- mui中的关闭页面的几种方法
一.总结: mui中关闭当前页面的几种方式: 1.swipeBack(暂未测试过) 2.keyEventBind(暂未测试过) 3.给标签的class加.mui-action-back(返回的是前一个 ...
- LintCode "4 Sum"
4 Pointer solution. Key: when moving pointers, we skip duplicated ones. Ref: https://github.com/xbz/ ...
- 【mysql】SQL常用指令
常用操作指令 show databases;显示所有的数据库: use dbName; 使用指定数据库 show tables; 显示所有的数据表: desc tableName; 查看数据表的字段信 ...
- centos 连不上网
ifc-eth0 里面要加DNS1=192.168.1.1 一定是DNS1这样的,不要是DNS
- SqlServer统计最近一周的数据
select * from 表名 where DATEDIFF( day, 日期字段列名,getdate())<7 and DATEPART(w, 日期字段列名) <DATEPART( ...
- div里面的内容超出自身高度时,显示省略号
1.给DIV设置属性:width: 200px; text-overflow: ellipsis; overflow: hidden; 当div里面的内容总宽度找过 200PX的时候,超出的部分会以“ ...
- UVA 133 The Dole Queue
The Dole Queue 题解: 这里写一个走多少步,返回位置的函数真的很重要,并且,把顺时针和逆时针写到了一起,也真的很厉害,需要学习 代码: #include<stdio.h> # ...
- 跨域请求 & jsonp
0 什么是跨域请求 在一个域名下请求另外一个域名下的资源,就是跨域请求.example 1:比如:我当前的域名是http://che.pingan.com.我现在要去请求http://www.cnbl ...