您的位置:首页 > 职场人生

黑马程序员-可变参数和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
可以看出使用泛型技术的类在实例化是自己指定属性的类型,这样使程序操作起来更安全,可以避免发生转换异常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐