??xml version="1.0" encoding="utf-8" standalone="yes"?>99re成人精品视频,精品久久久香蕉免费精品视频,精品亚洲一区二区三区四区五区高http://www.aygfsteel.com/robin/category/6575.htmlzh-cnSun, 18 Sep 2016 09:11:09 GMTSun, 18 Sep 2016 09:11:09 GMT60Java 8 Repeatable注解的?/title><link>http://www.aygfsteel.com/robin/archive/2016/09/06/431753.html</link><dc:creator>软g工程实践?/dc:creator><author>软g工程实践?/author><pubDate>Tue, 06 Sep 2016 08:24:00 GMT</pubDate><guid>http://www.aygfsteel.com/robin/archive/2016/09/06/431753.html</guid><wfw:comment>http://www.aygfsteel.com/robin/comments/431753.html</wfw:comment><comments>http://www.aygfsteel.com/robin/archive/2016/09/06/431753.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/robin/comments/commentRss/431753.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/robin/services/trackbacks/431753.html</trackback:ping><description><![CDATA[Java 8之前Q同一注解不能在相同的目标元素上多ơ用,例如Q如下的注解在Java 8之前是不允许的:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #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; ">public</span> <span style="color: #0000FF; ">class</span> SampleClass {<br />    <br />    @Quality("Security")<br />    @Quality("Performance")<br />    @Quality("Readability")<br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> foo(){<br />        <span style="color: #008000; ">//<br /></span>    }<br />}</div><br />Java 8引入了Repeatable注解Q@RepeatableQ可以解册一问题Q但光有可重复的注解定义q不够,q需要它的容器注解,两者一h实现可重复注解的使用。实例如下:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #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 />-->@Target(ElementType.METHOD)<br />@Retention(RetentionPolicy.SOURCE)<br />@Repeatable (Qualities.<span style="color: #0000FF; ">class</span>)<br /><span style="color: #0000FF; ">public</span> @<span style="color: #0000FF; ">interface</span> Quality {<br />    String value();<br />}</div><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->@Target(ElementType.METHOD)<br /><span style="color: #0000FF; ">public</span> @<span style="color: #0000FF; ">interface</span> Qualities {<br />    Quality[] value();<br />}</div><br />其中QQuality是可重复注解Q由@Repeatable注解标明Q它的容器注解是QualitiesQ用于存放所有可重复的QualityQ存贮在Quality[]中)Q同时还要注意可重复注解和它的容器注解的目标元素必须是一LQ这也不a自明Q。如此这般,我们最开始的 <strong>SampleClass </strong>在Java 8环境下就可以安全使用了?br /><br /><br /><img src ="http://www.aygfsteel.com/robin/aggbug/431753.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/robin/" target="_blank">软g工程实践?/a> 2016-09-06 16:24 <a href="http://www.aygfsteel.com/robin/archive/2016/09/06/431753.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Bill Push的单例模式实?/title><link>http://www.aygfsteel.com/robin/archive/2016/09/03/431736.html</link><dc:creator>软g工程实践?/dc:creator><author>软g工程实践?/author><pubDate>Sat, 03 Sep 2016 01:37:00 GMT</pubDate><guid>http://www.aygfsteel.com/robin/archive/2016/09/03/431736.html</guid><wfw:comment>http://www.aygfsteel.com/robin/comments/431736.html</wfw:comment><comments>http://www.aygfsteel.com/robin/archive/2016/09/03/431736.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/robin/comments/commentRss/431736.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/robin/services/trackbacks/431736.html</trackback:ping><description><![CDATA[以下单例实现思想来自《Java Design Patterns: A Programmer's Approach?<br />该方法利用了Java~省的Lazycd例化机制克服了传l单例模式实CLazy实例化方式的不?br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #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; ">public</span> <span style="color: #0000FF; ">class</span> Singleton {<br />   <span style="color: #0000FF; ">private</span> Singleton(){}<br />   <br />   <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">static</span> Singleton getInstance(){<br />      <span style="color: #0000FF; ">return</span> Helper.instance;<br />   }<br /><br />   <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">class</span> Helper {<br />       <span style="color: #0000FF; ">private</span> <span style="color: #0000FF; ">static</span> Singleton instance = <span style="color: #0000FF; ">new</span> Singleton();<br />   }<br />}</div><img src ="http://www.aygfsteel.com/robin/aggbug/431736.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/robin/" target="_blank">软g工程实践?/a> 2016-09-03 09:37 <a href="http://www.aygfsteel.com/robin/archive/2016/09/03/431736.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mustang(jdk1.6)Ҏ?/title><link>http://www.aygfsteel.com/robin/archive/2006/01/11/27569.html</link><dc:creator>软g工程实践?/dc:creator><author>软g工程实践?/author><pubDate>Wed, 11 Jan 2006 05:10:00 GMT</pubDate><guid>http://www.aygfsteel.com/robin/archive/2006/01/11/27569.html</guid><wfw:comment>http://www.aygfsteel.com/robin/comments/27569.html</wfw:comment><comments>http://www.aygfsteel.com/robin/archive/2006/01/11/27569.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/robin/comments/commentRss/27569.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/robin/services/trackbacks/27569.html</trackback:ping><description><![CDATA[<STRONG>1. 提供了磁盘分?- I间Ҏ<BR><BR></STRONG>在FilecM增加了以下方法:<BR><B>public long getFreeSpace(): </B>q回一个分区剩余空?BR><B>public long getTotalSpace(): </B>q回一个分区ȝ?BR><B>public long getUsableSpace():</B> q回一个分区已用空?BR>注意Q以上File指代的虚拟\径必L盘符Q否则返??BR><BR><STRONG>2. Splash Screen<BR><BR></STRONG>Mustang对于Splash Screen的实现是一个用来显CgifQ可以是动画式的Q?PNG, jpg囄的没有修饰的H口<BR>使用方式Q?BR>在java命o行中加入 -splash 选项,CZ如下Q?BR><B>java -splash mypic.jpg HelloWorld</B><BR><BR>如果你的cL以jar的方式来q行Q那么可以在jar文g的MANIFEST.MF文g中加入如下的一行:<BR><B>SplashScreen-Image:mypic.jpg</B><BR><BR>你也可以在命令行中写Q?BR>java -splash:mypic.jpg -jar helloWorld.jar<BR>q里用的囄替代MANIFESET.MF中定义的囄Q如果有的话Q?BR><BR>Z实现自定义的Splash Screen界面Q你可以使用如下的方法:<BR><BR>//使用SplashScreen的静态方法获得SplashScreen对象Q然后自定义<BR>SplashScreen ss = SplashScreen.getSplashScreen ();<BR>if (ss != null)<BR>{<BR>// 自定义代码?BR>}<BR><BR>在SpalshScreen中还提供了如下方法,具体使用LJDK或访问sun|站<BR>public Graphics getGraphics()<BR>public URL getImageURL()<BR>public Dimension getSize()<BR>public void setImageURL(URL imageURL):<BR>public void update()<BR><BR>值得注意的是Q你必须使用 -spalsh选项或MANIFEST.MF的方式来调用SplashScreenQ?BR>否则修改是无效的?img src ="http://www.aygfsteel.com/robin/aggbug/27569.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/robin/" target="_blank">软g工程实践?/a> 2006-01-11 13:10 <a href="http://www.aygfsteel.com/robin/archive/2006/01/11/27569.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何~写子定义annotation及用JDK5.0 annotation包中的annotationshttp://www.aygfsteel.com/robin/archive/2006/01/02/26309.html软g工程实践?/dc:creator>软g工程实践?/author>Mon, 02 Jan 2006 02:31:00 GMThttp://www.aygfsteel.com/robin/archive/2006/01/02/26309.htmlhttp://www.aygfsteel.com/robin/comments/26309.htmlhttp://www.aygfsteel.com/robin/archive/2006/01/02/26309.html#Feedback0http://www.aygfsteel.com/robin/comments/commentRss/26309.htmlhttp://www.aygfsteel.com/robin/services/trackbacks/26309.html@DocumentedQ@RetentionQ@TargetQ@Inherited

1. ~写自定义@Todo注解
l常我们在写E序Ӟ有时候有些功能在当前的版本中q不提供Q或׃某些其它原因Q有些方法没有完成,而留待以后完成,我们在javadoc中用@TODO来描q这一行ؓQ下面用java注解来实现?BR>
public @interface Todo { } // Todo.java

如果你想让这个注解类型能够自省的话,l它加上@Todo注解Q写法如下:

@Todo
public @interface Todo{ }


下面我们l这个注解接受参数的能力Q代码如下:
@Todo("Just articleware")
public @interface Todo{
  public enum Priority { LOW, MEDIUM, HIGH }
  String value();
  String[] owners() default "";
  Priority priority() default Priority.MEDIUM;
}

注意Q?/B>注解cL所能接受的参数cd有着严格的规则:
a. 参数cd只能是:primitive, String, Class, enum, annotation, 或者是数组Q?BR>b. 参数g能ؓI,因此每一个参数值都要定义一个缺省|
c. 名字为value的参数可以用便的Ҏ来设|;
d. 参数的写法如同写单方法(看如上代码)Q不允许加入参数Q不允许有throws子句{?BR>
在上面的代码中,我们为@Todo定义?个参? 分别是value, owners, priority. 注意Q由于value的特D性,它的的却省值可以由上面代码中的"Just articleware"来定义,当然你也可以单独写一个缺省倹{?BR>
下面看一个应用@Todo注解的例子:
@Todo(
  value="Class scope",
  priority=Unfinished.Priority.LOW
)
public class TodoDemo {

  @Todo("Constructor scope")//通过快捷方式Q设|value的?
  public TodoDemo() { }

  @Todo(owner="Jason", value="Method scope")
  public void foo() { }
}

上面的代码很单,不多介绍?BR>
下面我们惌@Todo不能应用在fields, parameters, 或者local variablesQ因Ҏ们来说没有意义)Q它应当可以出现在javadoc中;在运行是h持久性。要实现q些Ҏ,需要annotation包的支持啦?

2. 应用annotation包的支持

1Q@Documented
cdҎ的annotation~省情况下是不出现在javadoc中的Qؓ了加入这个性质我们用@Documented
应用代码如下(单,不多介绍Q:
package com.robin;
import java.lang.annotation.*;

@Todo("Just articleware")
@Documented
public @interface Todo{ ...


2Q@Retention
用来表明你的annotation的有效期Q可以有三种选择(如图所C?Q?BR>
以下CZ代码应用RUNTIME{略
package com.robin;
import java.lang.annotation.*;

@Todo("Just articleware")
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Todo{ ...

3) @Target
@Target注解表明某个注解应用在哪些目标上Q可选择如下范围:
  • ElementType.TYPE (class, interface, enum)
  • ElementType.FIELD (instance variable)
  • ElementType.METHOD ElementType.PARAMETER
  • ElementType.CONSTRUCTOR
  • ElementType.LOCAL_VARIABLE
  • ElementType.ANNOTATION_TYPE (应用于另一个注解上)
  • ElementType.PACKAGE

按我们的功能要求Q代码如下:
package com.robin;
import java.lang.annotation.*;

@Todo("Just articleware")
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD,
 ElementType.CONSTRUCTOR,ElementType.ANNOTATION_TYPE,
 ElementType.PACKAGE})
public @interface Todo{ ...

4) @Inherited
@Inherited表明是否一个用某个annotation的父cd以让此annotation应用于子cR?BR>CZ代码如下Q?BR>
package com.robin;
import java.lang.annotation.*;

@Todo("Just articleware")
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD,
 ElementType.CONSTRUCTOR,ElementType.ANNOTATION_TYPE,
 ElementType.PACKAGE})
@Inherited
public @interface Todo{
  public enum Priority { LOW, MEDIUM, HIGH }

  String value();
  String[] owners() default "";
  Priority priority() default Priority.MEDIUM;
}


]]>
J2SE 5.0的三U内|注释类?/title><link>http://www.aygfsteel.com/robin/archive/2006/01/01/26283.html</link><dc:creator>软g工程实践?/dc:creator><author>软g工程实践?/author><pubDate>Sun, 01 Jan 2006 13:41:00 GMT</pubDate><guid>http://www.aygfsteel.com/robin/archive/2006/01/01/26283.html</guid><wfw:comment>http://www.aygfsteel.com/robin/comments/26283.html</wfw:comment><comments>http://www.aygfsteel.com/robin/archive/2006/01/01/26283.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/robin/comments/commentRss/26283.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/robin/services/trackbacks/26283.html</trackback:ping><description><![CDATA[<div id="wmqeeuq" class=comText>注解(annotation)是J2SE 5.0的新内容Q它l我们提供了很好的编E支持,下面介绍一下其内置的三U注解类型:<BR><BR><STRONG>1. @Override</STRONG><BR><BR><FONT face="Courier New" size=2>@Override用在多态情况下Q比如:<BR><BR></FONT> <div id="wmqeeuq" class=xoopsCode><CODE><PRE><FONT size=2>public abstract class Animal{ public void say(){ System.out.println("annimal is saying"); } } public class Cat extends Animal{ @Override public void say(){ System.out.println("miao, miao"); } } </FONT></PRE></CODE></DIV><BR><FONT face="Courier New" size=2>通过@Override来告诉java~译器,sayҎ是重载的父类的方法,q样Q当父类的sayҎ{֐改名的话Q比如增加了一些参敎ͼ那么子类的Cat中的sayҎ~译时就会报错,说没有正的重蝲父类ҎQ所以,@Override可以帮我们验证程序的正确性,q一点,很有用?BR></FONT><BR><STRONG>2. @Deprecated <BR></STRONG><BR><FONT face="Courier New" size=2>@Deprecated的意思和JavaDoc中的@deprecated注释在本质上是一LQ用如下:<BR><BR></FONT><CODE> <P class=xoopsCode><FONT size=2>public class DeprecatedExample { <BR>   @Deprecated <BR>   public static void badMethod() { }<BR>}<BR><BR>public class DeprecatedUser { <BR>   public static void main(String[] args){<BR>      DeprecatedExample.badMethod(); <BR>   } <BR>}<BR></FONT></CODE><BR><FONT face="Courier New" size=1><FONT size=2>上面的代码如果用javacq行~译的话Q会打印出如下信?<BR>Note: DeprecatedUser.java uses or overrides a deprecated API.<BR>Note: Recompile with -Xlint:deprecation for details.<BR>1 error<BR>如果你按提示重新?Xlintq行~译Q你可以得到错误的详细信息Q?BR>% javac -Xlint:deprecation<BR>DeprecatedUser.java:3: warning: [deprecation] badMethod() in DeprecatedExample<BR>has been deprecated<BR>DeprecatedExample.badMethod();<BR><BR>需要注意的是:和javadoc中的@deprecated相比Q@Deprecatedq没有强大多,因ؓ它不支持参数Q而@deprecated后面q可以跟字符串来l一些相关的信息Q但@Deprecated做不刎ͼ但它提供了运行时自省的功能,来提C错误,所以徏议@Deprecated和@deprecated同时使用?/FONT><BR></FONT><BR><FONT face="宋体, MS Song"> <STRONG>3. @SuppressWarnings</STRONG> <BR><BR></FONT><FONT face="Courier New" size=2>֐思义Q就是抑制警告信息的出现Q用如下:<BR></FONT><FONT size=2><CODE>public class DeprecatedExample2{ <BR>   @Deprecated <BR>   public static void foo() { }<BR>}<BR><BR>public class DeprecatedUser2 { <BR>   @SuppressWarnings(value={"deprecation"}) <BR>   public static void main(String[] args) { <BR>      DeprecatedExample2.foo(); <BR>   } <BR>}<BR></CODE><BR></FONT><FONT face="Courier New" size=2>上述@SuppressWarnings(value={"deprecation"})的作用就是抑制编译器报deprecation的错?BR>@SuppressWarnings(value={"deprecation"})只支持一个参敎ͼ是数l类型,所以你可以不用加value, 写成Q@SuppressWarnings({"deprecation"})Q当x制多个类型的警告信息Ӟ可写Q@SuppressWarnings({"unchecked","fallthrough",deprecation"}).<BR><BR>注意Q在JDK1.5.0 release中,@SuppressWarningsq没有得到完全支持,会在以后支持Q但Sunq没有给出具体的旉?/FONT></P></DIV><img src ="http://www.aygfsteel.com/robin/aggbug/26283.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/robin/" target="_blank">软g工程实践?/a> 2006-01-01 21:41 <a href="http://www.aygfsteel.com/robin/archive/2006/01/01/26283.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">׺</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ӯ</a>| <a href="http://" target="_blank">ʦ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">¦</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">۲</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͷ</a>| <a href="http://" target="_blank">ϰˮ</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ԫ</a>| <a href="http://" target="_blank">½</a>| <a href="http://" target="_blank">⳵</a>| <a href="http://" target="_blank">̳</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ǧɽ</a>| <a href="http://" target="_blank">ũ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">Ƹ</a>| <a href="http://" target="_blank">䰲</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʤ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>