黑马程序员-可变参数和foreach输出及泛型技术
2011-07-13 15:04
253 查看
1、JDK1.5增加了新特性:可变参数。适用于参数个数不确定,类型确定的情况,Java把可变参数当做数组处理。注意:可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。代码如下:
public class Test {
private static int count=0;
public static void main(String[] args) {
get("1",new Object[]{"1","2","3"});
}
public static void get(String s,Object... vaule){
for (Object p:vaule){
System.out.println(p);
}
}
}
2、foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。 foreach的语句格式:for(元素类型t 元素变量x : 遍历对象obj){ 引用了x的java语句;} 下面举一个例子:package test.java;
import java.util.ArrayList;
import java.util.List;
public class TestForeach {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("北京");
list.add("上海");
list.add("天津");
for(String str : list){
System.out.println(str);
}
}
}
输出结果:北京
上海
天津
JDK1.5新特性中的泛型技术可以解决数据类型的安全性问题,其主要原理是在类声明时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这样在类声明或实例化时只要指定好具体的类型即可。代码如下
class Point<T>
{
private T var;
public T getvar(){
return var;
}
public void setVar(T var){
this.var = var;
}
}
public class TestPoint{
public static void main(String args[]){
Point<Integer> p1= new Point<Integer>;
Point<String> p2 = new Point<String>;
p1.setVar(30);
p2.setVar("Hello");
System.out.println(p1.getVar());
System.out.println(p2.getVar());
}
}
输出结果为:
30
Hello
可以看出使用泛型技术的类在实例化是自己指定属性的类型,这样使程序操作起来更安全,可以避免发生转换异常。
public class Test {
private static int count=0;
public static void main(String[] args) {
get("1",new Object[]{"1","2","3"});
}
public static void get(String s,Object... vaule){
for (Object p:vaule){
System.out.println(p);
}
}
}
2、foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。 foreach的语句格式:for(元素类型t 元素变量x : 遍历对象obj){ 引用了x的java语句;} 下面举一个例子:package test.java;
import java.util.ArrayList;
import java.util.List;
public class TestForeach {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("北京");
list.add("上海");
list.add("天津");
for(String str : list){
System.out.println(str);
}
}
}
输出结果:北京
上海
天津
JDK1.5新特性中的泛型技术可以解决数据类型的安全性问题,其主要原理是在类声明时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这样在类声明或实例化时只要指定好具体的类型即可。代码如下
class Point<T>
{
private T var;
public T getvar(){
return var;
}
public void setVar(T var){
this.var = var;
}
}
public class TestPoint{
public static void main(String args[]){
Point<Integer> p1= new Point<Integer>;
Point<String> p2 = new Point<String>;
p1.setVar(30);
p2.setVar("Hello");
System.out.println(p1.getVar());
System.out.println(p2.getVar());
}
}
输出结果为:
30
Hello
可以看出使用泛型技术的类在实例化是自己指定属性的类型,这样使程序操作起来更安全,可以避免发生转换异常。
相关文章推荐
- java1.5新特性:可变参数;foreach;静态导入;泛型
- 黑马程序员--Java基础加强--04.代码简化 书写规律III_数组参数【重载】【数组】【可变参数数组】【泛型可变参数数组】【个人总结】
- 泛型、foreach、静态导入、可变参数
- 新特性对数组的支持(可变参数的使用、foreach输出的使用)
- 可变参数的使用和foreach的输出
- 黑马程序员————java基础--------JDK1.5新特性之泛型、自动拆装箱、增强for、静态导入、可变参数
- 黑马程序员:基础加强(可变参数、增强for、枚举、javabBean、BeanUtils、注解、泛型)
- 黑马程序员_集合、可变参数、泛型
- 黑马程序员-Java的集合类(泛型、可变参数、for-each循环和静态导入)
- java中的可变参数与foreach输出
- 黑马程序员_学习笔记:11) Jdk5.0新特性:增强for循环、可变参数(...)、静态导入、枚举:关键字 enum、自动拆装箱、泛型
- 黑马程序员------java中的泛型、增强for循环、可变参数、静态导入、自动拆装箱、枚举
- 可变参数的日志输出信息
- Java语法糖1:可变长度参数以及foreach循环原理
- 黑马程序员-java之可变参数
- 黑马程序员--高新技术--可变参数,增强for循环,枚举
- 自己写了一个可变参数的泛型模板
- Java语法糖1:可变长度参数以及foreach循环原理
- 黑马程序员---可变参数、Class类
- 【黑马程序员】jdk1.5的新特性之可变参数和增强for循环