http://www.meichua.com (收藏,设为首页)
以前打牌的时候出牌太慢,其他人就叫着出啊,出啊,所以就变成了chua...... (手机请访问 http://3g.dlog.cn/meichua)
上一篇:java特性-变参 下一篇:能不用的就不用

java特性-The for/in Statement & Static Imports

2008年3月28日(Friday) 17点25分 作者: chua 天气: 心情: 一般

5 The for/in Statement & Static Imports
5.1 The for/in Statement
 看一下代码
  import static java.lang.System.out;
  public class ForInStatement {
  
      public static void main(String[] args) {
          int[] ints = new int[]{0,1,2,3,4,5,6,7,8,9};
          for(int i : ints) {
              out.println(i);
          }
      }
  
  }
 for循环表达式很简单,当然编译后得class文件中还是原先的形式for(x;x;x),java新特性好像只是为了书写方便,编译器把代码帮转成原先的Statement,jvm的内部语言实现没有多大变化,但那也足够了
  这里使用了array作为例子,当然很多容器都支持这样的写法,当然你自己可以构造一个容器只要实现了interface Iterable.


5.2 Static Imports
 上面的代码中的import
  import static java.lang.System.out;
 代码中就可以直接引用了
 out.println(i);
 这就是静态引入的概念,适用与静态方法,静态变量;枚举类都是staitc的,所以也可以引用
 通配符的应用如:import static java.lang.Math.*;我们一般不提倡用通配符
 同时引入两个一样的名字,如
   import static java.util.Arrays.sort;
    import static java.util.Collections.sort;
  这时会根据你掉用的方法的参数,去找两个sort中合适的方法;假使你要调用的方法在两个静态引入里都同时存在,那么将会发生编译期错误
  方法中参数名同静态引入名,如
   import static java.lang.System.out;
   .
   .

  public static void writeError(PrintStream err, String msg) throws IOException {
     err.println(msg);
   }
     .
     .
    此时,方法中的参数err会覆盖静态引入的err;当然为了减少不必要的麻烦,建议修改writeError里err的名字为psErr之类的,不要和静态引入的重名

姓名: 
邮箱:  {可选}
网址:  {可选} 此评论只有我和写日记的人查阅
校验码: ... <我看不清楚>
网记为您提供手机和互联网同步的个人主页,带给你不一样的体验