﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-吕鹏的Java技术博客-文章分类-Java高新技术</title><link>http://www.blogjava.net/BlogJava522935502/category/49052.html</link><description>我的程序员之路</description><language>zh-cn</language><lastBuildDate>Thu, 14 Jul 2011 07:22:52 GMT</lastBuildDate><pubDate>Thu, 14 Jul 2011 07:22:52 GMT</pubDate><ttl>60</ttl><item><title>JDK1.5之可变参数</title><link>http://www.blogjava.net/BlogJava522935502/articles/354120.html</link><dc:creator>吕鹏-Roc</dc:creator><author>吕鹏-Roc</author><pubDate>Mon, 11 Jul 2011 09:59:00 GMT</pubDate><guid>http://www.blogjava.net/BlogJava522935502/articles/354120.html</guid><wfw:comment>http://www.blogjava.net/BlogJava522935502/comments/354120.html</wfw:comment><comments>http://www.blogjava.net/BlogJava522935502/articles/354120.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/BlogJava522935502/comments/commentRss/354120.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlogJava522935502/services/trackbacks/354120.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;cn.zbvc.jdk;<br />
<br />
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;VarableParameter&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;main(String[]&nbsp;args)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(add(</span><span style="color: #000000; ">2</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">3</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">5</span><span style="color: #000000; ">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;add(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;a,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />&nbsp;args){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;sum&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;a;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">使用的是以往的for循环<br />
</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;args.length;i++){<br />
</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;+=&nbsp;args[i];<br />
</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">在这个例子中，我们使用增强型的for循环</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;a2&nbsp;:&nbsp;args){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">&nbsp;a2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;sum;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
}<br />
</span></div>
@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://www.blogjava.net/BlogJava522935502/aggbug/354120.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlogJava522935502/" target="_blank">吕鹏-Roc</a> 2011-07-11 17:59 <a href="http://www.blogjava.net/BlogJava522935502/articles/354120.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JDK1.5之静态导入</title><link>http://www.blogjava.net/BlogJava522935502/articles/354119.html</link><dc:creator>吕鹏-Roc</dc:creator><author>吕鹏-Roc</author><pubDate>Mon, 11 Jul 2011 09:57:00 GMT</pubDate><guid>http://www.blogjava.net/BlogJava522935502/articles/354119.html</guid><wfw:comment>http://www.blogjava.net/BlogJava522935502/comments/354119.html</wfw:comment><comments>http://www.blogjava.net/BlogJava522935502/articles/354119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/BlogJava522935502/comments/commentRss/354119.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/BlogJava522935502/services/trackbacks/354119.html</trackback:ping><description><![CDATA[<div>
<p>1.JAVA中的静态导入</p>
<p><br />
1.<font face="宋体">使用方法</font>&nbsp;<br />
<span  style="font-size: 13px; "><span style="color: #0000FF; ">package<span style="color: #000000; ">&nbsp;tips;</span></span>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; ">　　<br />
<span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">interface</span><span style="color: #000000; ">&nbsp;Constants&nbsp;{<br />
<br />
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">final</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;PORT_NUMBER&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">90</span><span style="color: #000000; ">;<br />
<br />
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">final</span><span style="color: #000000; ">&nbsp;String&nbsp;APP_NAME&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">DOOLY</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />
<br />
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;StaticNestedClass&nbsp;{}</span><span style="color: #008000; ">//</span><span style="color: #008000; ">子类</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">　　<br />
}</span></div>
</span>　　<br />
通过使用&nbsp;<font face="Times New Roman">import&nbsp;static</font><font face="宋体">，就可以不用指定&nbsp;</font><font face="Times New Roman">Constants&nbsp;</font><font face="宋体">类名而直接使用静态成员，包括静态方法。</font>&nbsp;例如：<br />
<br />
<span  style="font-size: 13px; "><span style="color: #000000; ">　</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;tips.Constants.</span><span style="color: #000000; ">*</span><span style="color: #000000; ">;</span></span></p>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><span style="color: #000000; ">　　<br />
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;StaticImportTip&nbsp;{<br />
<br />
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;main(String&nbsp;[]args)&nbsp;{<br />
<br />
System.out.println(PORT_NUMBER);<br />
<br />
System.out.println(APP_NAME);<br />
<br />
System.out.println(StaticNestedClass.</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">);<br />
<br />
}<br />
<br />
}</span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>2.<font face="宋体">注意事项</font>&nbsp;<br />
假如你决定使用静态导入特性，推荐单独地导入常量名，而不要使用通配符。因为这样做可以让人知道常量的来源。&nbsp;<br />
<br />
比如说在下面的代码片断中，一个开发人员查看了代码之后不知道<font face="Times New Roman">DEFAULT_URL&nbsp;</font><font face="宋体">和</font><font face="Times New Roman">PORT_NUMBER</font><font face="宋体">从哪个类中导入的。</font><br />
<br />
<span  style="font-size: 13px; "><span style="color: #0000FF; ">import<span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;tips.Constants.</span><span style="color: #000000; ">*</span><span style="color: #000000; ">;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">注意是完全路径&nbsp;</span></span>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><span style="color: #000000; ">　　<br />
</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;tips.gen.App.</span><span style="color: #000000; ">*</span><span style="color: #000000; ">;<br />
<br />
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;StaticImportTip&nbsp;{<br />
<br />
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;main(String&nbsp;[]args)&nbsp;{<br />
<br />
System.out.println(PORT_NUMBER);<br />
<br />
System.out.println(DEFAULT_URL);<br />
<br />
}<br />
<br />
}</span></div>
</span>　　<br />
假如导入语句如下：<br />
<br />
<span  style="font-size: 13px; "><span style="color: #0000FF; ">import<span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;tips.Constants.PORT_NUMBER;</span></span>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; ">　　<br />
<span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&nbsp;tips.gen.App.DEFAULT_URL;</span></div>
</span>　　<br />
那么常量的来源就很明显了。</p>
<p>另外，<br />
</p>
<p>&#9679;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;针对一个给定的包，不可能用一行语句静态地导入所有类的所有类方法和类变量。也就是说，您不能这样编写代码：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;import&nbsp;static&nbsp;java.lang.*;&nbsp;&nbsp;//&nbsp;this&nbsp;does&nbsp;not&nbsp;compile!</p>
<p>&#9679;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果一个本地方法，和一个静态导入的方法有着相同的名字，那么本地方法被调用。</p>
<p>&nbsp;谨慎地使用静态导入。因为静态导入使得类方法和类变量的定义位置变得模糊，所以加大了理解代码的难度。使用静态导入的原则是：限制静态导入的使用，不要在应用程序中普遍使用静态导入。</p>
<p><br />
3.<font face="宋体">为什么要用静态导入，后果会怎样，好处又是什么？</font></p>
<p>静态导入使您不&nbsp;用提供类名，这样做可以偷点儿懒，但也引入了不必要的混淆。正如&nbsp;createDate&nbsp;在何处定义这个问题。如果您正在编写的某个类，需要调用多个外部类方法（可能几十个甚至更多），这样您或许有了使用静态导入的借口。但是，更好的方法是，弄明白为什么需要这么多的静态调用，或许您需要重新审视类的设计。</p>
<p>使用静态导入的可能理由之一是：简化对多个类常量的调用，而且这些类常量定义在一个地方。假设您创建了多个报表类，而且每个报表类都需要将换行符追加到输出，所以每个报表类都需要用到常&nbsp;量&nbsp;NEWLINE&nbsp;，&nbsp;就像RosterReporter&nbsp;中的定义：</p>
<p>static&nbsp;final&nbsp;String&nbsp;NEWLINE&nbsp;=&nbsp;System.getProperty("line.separator");</p>
<p>您不会希望在每个报表类中都重复定义这个常量。所以您可以创建一个新类，这个类的职责就是为了持有常量。稍后，它也可以持有别的常量，例如对任何报表类都适用的页面宽度。</p>
<p>&nbsp;</p>
</div>
@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://www.blogjava.net/BlogJava522935502/aggbug/354119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/BlogJava522935502/" target="_blank">吕鹏-Roc</a> 2011-07-11 17:57 <a href="http://www.blogjava.net/BlogJava522935502/articles/354119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>