BlogJava-吕鹏的Java技术博客-文章分类-Java高新技术http://www.blogjava.net/BlogJava522935502/category/49052.html我的程序员之路zh-cnThu, 14 Jul 2011 07:22:52 GMTThu, 14 Jul 2011 07:22:52 GMT60JDK1.5之可变参数http://www.blogjava.net/BlogJava522935502/articles/354120.html吕鹏-Roc吕鹏-RocMon, 11 Jul 2011 09:59:00 GMThttp://www.blogjava.net/BlogJava522935502/articles/354120.htmlhttp://www.blogjava.net/BlogJava522935502/comments/354120.htmlhttp://www.blogjava.net/BlogJava522935502/articles/354120.html#Feedback0http://www.blogjava.net/BlogJava522935502/comments/commentRss/354120.htmlhttp://www.blogjava.net/BlogJava522935502/services/trackbacks/354120.htmlpackage cn.zbvc.jdk;

public class VarableParameter {

    
public static void main(String[] args) {
        
// TODO Auto-generated method stub
        System.out.println(add(235));
    }
    
    
public static int add(int a,int  args){
        
int sum = a;
        
//使用的是以往的for循环
//        for(int i=0;i<args.length;i++){
//            sum += args[i];
//        }
        
//在这个例子中,我们使用增强型的for循环
        for(int a2 : args){
            sum 
+= a2;
        }
        
return sum;
    }

}
@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

吕鹏-Roc 2011-07-11 17:59 发表评论
]]>
JDK1.5之静态导入http://www.blogjava.net/BlogJava522935502/articles/354119.html吕鹏-Roc吕鹏-RocMon, 11 Jul 2011 09:57:00 GMThttp://www.blogjava.net/BlogJava522935502/articles/354119.htmlhttp://www.blogjava.net/BlogJava522935502/comments/354119.htmlhttp://www.blogjava.net/BlogJava522935502/articles/354119.html#Feedback0http://www.blogjava.net/BlogJava522935502/comments/commentRss/354119.htmlhttp://www.blogjava.net/BlogJava522935502/services/trackbacks/354119.html

1.JAVA中的静态导入


1.使用方法 
package tips;

  
public interface Constants {

public static final int PORT_NUMBER = 90;

public static final String APP_NAME = "DOOLY";

public static class StaticNestedClass {}//子类
  
}
  
通过使用 import static,就可以不用指定 Constants 类名而直接使用静态成员,包括静态方法。 例如:

 import static tips.Constants.*;

  
public class StaticImportTip {

public static void main(String []args) {

System.out.println(PORT_NUMBER);

System.out.println(APP_NAME);

System.out.println(StaticNestedClass.
class);

}

}

 

 

 

 

 

 

2.注意事项 
假如你决定使用静态导入特性,推荐单独地导入常量名,而不要使用通配符。因为这样做可以让人知道常量的来源。 

比如说在下面的代码片断中,一个开发人员查看了代码之后不知道DEFAULT_URL PORT_NUMBER从哪个类中导入的。

import static tips.Constants.*;//注意是完全路径 

  
import static tips.gen.App.*;

public class StaticImportTip {

public static void main(String []args) {

System.out.println(PORT_NUMBER);

System.out.println(DEFAULT_URL);

}

}
  
假如导入语句如下:

import static tips.Constants.PORT_NUMBER;
  
import static tips.gen.App.DEFAULT_URL;
  
那么常量的来源就很明显了。

另外,

●          针对一个给定的包,不可能用一行语句静态地导入所有类的所有类方法和类变量。也就是说,您不能这样编写代码:

     import static java.lang.*;  // this does not compile!

●          如果一个本地方法,和一个静态导入的方法有着相同的名字,那么本地方法被调用。

 谨慎地使用静态导入。因为静态导入使得类方法和类变量的定义位置变得模糊,所以加大了理解代码的难度。使用静态导入的原则是:限制静态导入的使用,不要在应用程序中普遍使用静态导入。


3.为什么要用静态导入,后果会怎样,好处又是什么?

静态导入使您不 用提供类名,这样做可以偷点儿懒,但也引入了不必要的混淆。正如 createDate 在何处定义这个问题。如果您正在编写的某个类,需要调用多个外部类方法(可能几十个甚至更多),这样您或许有了使用静态导入的借口。但是,更好的方法是,弄明白为什么需要这么多的静态调用,或许您需要重新审视类的设计。

使用静态导入的可能理由之一是:简化对多个类常量的调用,而且这些类常量定义在一个地方。假设您创建了多个报表类,而且每个报表类都需要将换行符追加到输出,所以每个报表类都需要用到常 量 NEWLINE , 就像RosterReporter 中的定义:

static final String NEWLINE = System.getProperty("line.separator");

您不会希望在每个报表类中都重复定义这个常量。所以您可以创建一个新类,这个类的职责就是为了持有常量。稍后,它也可以持有别的常量,例如对任何报表类都适用的页面宽度。

 

@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

吕鹏-Roc 2011-07-11 17:57 发表评论
]]>