﻿<?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基础</title><link>http://www.blogjava.net/fatesymphony/category/47857.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 21 Sep 2011 08:38:54 GMT</lastBuildDate><pubDate>Wed, 21 Sep 2011 08:38:54 GMT</pubDate><ttl>60</ttl><item><title>分享 - 小问题大道理</title><link>http://www.blogjava.net/fatesymphony/archive/2011/09/20/359062.html</link><dc:creator>目绘艺术</dc:creator><author>目绘艺术</author><pubDate>Tue, 20 Sep 2011 04:45:00 GMT</pubDate><guid>http://www.blogjava.net/fatesymphony/archive/2011/09/20/359062.html</guid><wfw:comment>http://www.blogjava.net/fatesymphony/comments/359062.html</wfw:comment><comments>http://www.blogjava.net/fatesymphony/archive/2011/09/20/359062.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fatesymphony/comments/commentRss/359062.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fatesymphony/services/trackbacks/359062.html</trackback:ping><description><![CDATA[<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: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;Order&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;String&nbsp;name;<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">&nbsp;Set</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">OrderLine</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;orderLines&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;HashSet</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">OrderLine</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">();<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;String&nbsp;getName()&nbsp;{<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;name;<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setName(String&nbsp;name)&nbsp;{<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.name&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;name;<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">/**</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;因为这是一个domain对象，贯穿你整个项目，不知你是否在意过这样的设计。<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;这样的设计对你是否有用呢？<br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;用户：表示API调用者。&nbsp;<br /></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;Set</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">OrderLine</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;getOrderLines()&nbsp;{<br /></span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">/*</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;1.防止用户任意修改订单行的内容，强制要求用户使用当前类提供的API修改订单行<br /></span><span style="color: #008080; ">24</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;2.getOrderLines()绝对不为null，有可能getOrderLines().isEmpty()为true<br /></span><span style="color: #008080; ">25</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;用在你的程序中不会出现if(getOrderLines()&nbsp;==&nbsp;null&nbsp;&amp;&amp;&nbsp;getOrderLines().isEmpty())，<br /></span><span style="color: #008080; ">26</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;只会出现if(getOrderLines().isEmpty())<br /></span><span style="color: #008080; ">27</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">28</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;Collections.unmodifiableSet(orderLines);<br /></span><span style="color: #008080; ">29</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">30</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">31</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">-----------------------提供API修改Order&nbsp;by&nbsp;OrderLine----------------------------</span><span style="color: #008000; ">//<br /></span><span style="color: #008080; ">32</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;addOrderLine(OrderLine&nbsp;orderLine)&nbsp;{<br /></span><span style="color: #008080; ">33</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//<br /></span><span style="color: #008080; ">34</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;orderLines.add(orderLine);<br /></span><span style="color: #008080; ">35</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">36</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">37</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;removeOrderLine(OrderLine&nbsp;orderLine)&nbsp;{<br /></span><span style="color: #008080; ">38</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #008000; "><br /></span><span style="color: #008080; ">39</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">40</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">-----------------------提供API修改Order&nbsp;by&nbsp;OrderLine----------------------------</span><span style="color: #008000; ">//<br /></span><span style="color: #008080; ">41</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">42</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;setOrderLines(Set</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">OrderLine</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;orderLines)&nbsp;{<br /></span><span style="color: #008080; ">43</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;this.orderLines&nbsp;=&nbsp;orderLines;<br /></span><span style="color: #008080; ">44</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;为什么没有向上面来做，是因为如果是这样赋值的话那么两个对象就是同一个引用了。<br /></span><span style="color: #008080; ">45</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;用户修改orderLines，this.orderLines也同样会被修改。<br /></span><span style="color: #008080; ">46</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;而提供这个类期望用户通过该类提供的接口来修改orderLines。</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">47</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;orderLines.addAll(orderLines);<br /></span><span style="color: #008080; ">48</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">49</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">50</span>&nbsp;<span style="color: #000000; ">}</span></div><img src ="http://www.blogjava.net/fatesymphony/aggbug/359062.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fatesymphony/" target="_blank">目绘艺术</a> 2011-09-20 12:45 <a href="http://www.blogjava.net/fatesymphony/archive/2011/09/20/359062.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jdoc2chm (Javadoc转CHM帮助文档工具)</title><link>http://www.blogjava.net/fatesymphony/archive/2011/07/23/354900.html</link><dc:creator>目绘艺术</dc:creator><author>目绘艺术</author><pubDate>Sat, 23 Jul 2011 07:56:00 GMT</pubDate><guid>http://www.blogjava.net/fatesymphony/archive/2011/07/23/354900.html</guid><wfw:comment>http://www.blogjava.net/fatesymphony/comments/354900.html</wfw:comment><comments>http://www.blogjava.net/fatesymphony/archive/2011/07/23/354900.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fatesymphony/comments/commentRss/354900.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fatesymphony/services/trackbacks/354900.html</trackback:ping><description><![CDATA[jdoc2chm是一个转换javadoc至CHM文件的工具，支持JDK7的Javadoc转换。<br /><br />无论你在工作中或者在学习中，手上有一个良好易用的帮助文件都会给你带来无限的方便。你无需要把什么东西都记在大脑里面，你只需要能够熟练的使用各种技术的提供的帮助文档，这样你的工作和学习都会十分轻松。<br />在你不明白或困惑的时候你应该阅读官方提供的文档，也许答案就在其中。<br /><br />类似jdoc2chm的工具网上也有许多，这次作者编写该工具的主要目的是为了支持JDK7所生成的Javadoc（JDK7还未正式发布，同样也是为了迎接JDK7的到来）。JDK7 Oracle官方提供的Javadoc与前面的版本格式都有所改变，导致前面所有的jdoc2chm工具都不能正确<br />的将JDK7的Javadoc转换为CHM。<br /><br />jdoc2chm是免费开源的一个项目。使用非常简单。<br />首先你要到这里去<a href="http://code.google.com/p/jdoc2chm/"><em style="color: red;"><strong>下载</strong></em></a><em><strong></strong></em>jdoc2chm的发布包。<br />你可以通过下面的地址获取jdoc2chm的源码。<br /><div><tt id="checkoutcmd"><strong><em></em></strong><a href="http://jdoc2chm.googlecode.com/svn/trunk/"><strong><em>http</em></strong>://jdoc2chm.googlecode.com/svn/trunk/</a></tt></div><br />下面赋上JDK7的CHM帮助文档和效果图。<strong><a href="http://jdoc2chm.googlecode.com/files/JavaSE_7_API_DOC_en_US.zip"><span style="color: red;">下载</span></a></strong><br /><img alt="" src="http://www.blogjava.net/images/blogjava_net/fatesymphony/jdk7-chm1.jpg" height="830" width="1236" /><br /><img alt="" src="http://www.blogjava.net/images/blogjava_net/fatesymphony/jdk7-chm2.jpg" height="769" width="824" /><img src ="http://www.blogjava.net/fatesymphony/aggbug/354900.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fatesymphony/" target="_blank">目绘艺术</a> 2011-07-23 15:56 <a href="http://www.blogjava.net/fatesymphony/archive/2011/07/23/354900.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>