1import{_ as i,c as a,b as n,o as l}from"./app-CNefOTx1.js";const e={};function t(h,s){return l(),a("div",null,s[0]||(s[0]=[n(`<p>å¦ææ²¡æ¶é´ï¼å¯ä»¥ç´æ¥é
读 <a href="https://www.yinwang.org/blog-cn/2020/02/05/how-to-read-code" target="_blank" rel="noopener noreferrer">ç¼ç¨çæºæ
§</a></p><p>å¦æææ¶é´ï¼å¯ä»¥è´ä¹°<a href="https://aeryzhao.github.io/cleancode-book/" target="_blank" rel="noopener noreferrer">ãClean Codeã</a></p><p><strong>项ç®ä»£ç æ¯âç¼å䏿¬¡ï¼é
è¯»å¤æ¬¡â</strong>ã é
读è
å
æ¬ä»£ç ç¼åè
ï¼æ¶æå¸ï¼å®¡æ¥äººåï¼ä»¥å忥çç»´æ¤äººåãè½è®©é
è¯»ä»£ç æ´è½»æ¾ï¼æå©äºå¢å¼ºé¡¹ç®æè
产åçå¯ç»´æ¤æ§ãæ¯åç§è½¯ä»¶å·¥ç¨æ¹æ³ï¼é¢å对象å®è·µï¼éæï¼ä»¥åæ°ææ¯åºç¨å°å°é¡¹ç®éçä¸ä¸ªéè¦åæï¼å¦æä»£ç é¾ä»¥é
è¯»ï¼ææè¿äºæ¹æ³åç论é½é¾ä»¥å¨é¡¹ç®ä¸å®æ½,妿代ç é¾ä»¥ç»´æ¤ï¼é£ä¹æ§è½ä¼å乿 ä»è°èµ·</p><p>æ¬ç« <strong>䏿¯ä¸ä¸ªJava代ç è§èå设计åå</strong>ï¼æ¬ç« 主è¦èç¦å¦ä½ç¼åå¯è¯»æ§å¼ºç代ç ã å¯è½ä¼è®©ä»£ç åå¤ï¼ä¹å¯è½ä¼è®©ä»£ç åå°ï¼ç®çæ¯è®©ä»£ç æ´å®¹æè¢«å«äººå3个æåçèªå·±è¯»æã</p><ul><li>æ ææ³¨éå¹²æ°é
读</li><li>æ¥å¿ååç¹å¯¹é
读ç帮å©</li><li>åéå½åååéçä½ç½®æå©äºé
读</li><li>å°æ¹æ³ä»£æ¿ä»£ç 段让é
读æ´è½»æ¾</li><li>If-else, ä¿æä¸»é»è¾ç
é</li><li>åç°å¯¹è±¡ï¼ä½¿ç¨å¯¹è±¡ã代æ¿stringåmap</li></ul><h2 id="_1-1-ç²¾ç®æ³¨é" tabindex="-1"><a class="header-anchor" href="#_1-1-ç²¾ç®æ³¨é"><span>1.1 ç²¾ç®æ³¨é</span></a></h2><p>å¨ä»£ç åéåºè¯¥å°½éåå°æ³¨éç¼åï¼å°¤å
¶æ¯æè¿°è®¾è®¡ææ³åå®ç°è¿ç¨ç注éï¼è¿æ¯å 为代ç ä¼ä¸åçéçä¸å¡éæ±ååèååï¼æ³¨éå¾å¾å¨éæä¸è¢«IDE忽ç¥ï¼ä¹ä¼è¢«äººä¸ºå¿½ç¥ï¼ç¨ãclean codeãéçè¯æ¥è¯´ï¼æ³¨é容æè
çãé¿å
注éè
çéè¦æä»¬å°½åç»´æ¤ä»£ç åæ³¨éç忥ï¼ä»£ç ä¸ç²¾ç®æ³¨é乿¯é²æ¢è
çæå¥½çåæ³ã</p><h3 id="_1-1-1-注éä¼å" tabindex="-1"><a class="header-anchor" href="#_1-1-1-注éä¼å"><span>1.1.1 注éä¼å</span></a></h3><p>ä¸åå举ä¸äºå
³äºä»£ç å
注é使ç¨åå</p><p><strong>åºæ¯1ï¼è¢«æ³¨éç代ç åæ¶å é¤</strong></p><p>
1被注éç代ç åºè¯¥åæ¶å 餿ï¼å¦åè¿æ®µä»£ç å°ä¼ ç»ä¸ä»£åä¸ä»£ç代ç ç»´æ¤è ï¼æ 人æ¢å é¤è¿æ®µä»£ç ,æå¨2018å¹´æ¾ç»´æ¤ä¸ä¸ªå·¥ä½æµå¼æï¼é颿ä¸å07年代ç 让æä¸ç´å¾è¿·æ</p><div class="language-json line-numbers-mode" data-ext="json" data-title="json"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">//å«å é¤è¿å代ç by WXï¼01.09</span></span> 2<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">//Task[] tasks = taskService.query();</span></span> 3<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">//.....</span></span> 4<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">Task task = taskService.queryOne();</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>å¼åè ä¸åºè¯¥æ³¨é代ç åï¼åºè¯¥å°½å¿«å é¤ãå¦ææ³æ¢å¤ï¼å¯ä»¥éè¿gitå·¥å ·æ¥æ¢å¤</p><p><strong>åºæ¯2 éè¿æ³¨éè§£é代ç è¡ä¸º</strong></p><p><strong>ä»£ç æ³¨éåºè¯¥è¯´æä»£ç ç卿º</strong>ï¼è䏿¯åæ¬¡ç¨æåæè¿°ä¸è¾¹ä»£ç è¿ç¨ï¼å¦ä¸æ³¨éç¸å½äºæ²¡æ</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">/*å符å 容符å18个æ°åæè 15个æ°å*/</span></span> 5<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> static</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> final</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> String</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> REGEX_ID_CARD</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">(^</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">\\\\</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">d{18}$)|(^</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">\\\\</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">d{15}$)</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 6<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">ä¸å¦æ¹æ</span></span> 7<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">/*身份è¯å·éªè¯*/</span></span> 8<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> static</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> final</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> String</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> REGEX_ID_CARD</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">(^</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">\\\\</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">d{18}$)|(^</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">\\\\</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">d{15}$)</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>æä¸ä¸ªãå¦ä½ç¼åæ æ³ç»´æ¤ç代ç ãå°±æå°ä¸ä¸ªååï¼<strong>åªè®°å½ How è䏿¯ Why</strong> ï¼å°±ä¼è®©ä»£ç æ æ³ç»´æ¤</p><p>å¦ä¸ä»£ç ï¼å¯¹è´¦æ·ç¶æå¼è¿è¡æ³¨é</p><div class="language-json line-numbers-mode" data-ext="json" data-title="json"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">/* ç¶æ 0 æ£å¸¸ 1 å¼å¸¸ 2 æªç¥ */</span></span> 9<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">private Integer status;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>ç¶èï¼å¦æstatuséåæ·»å æ´å¤çå«ä¹ï¼æ¯å¦æ·»å 3表示å»ç»ï¼åå¾
9å¯è½å¿½ç¥ä¿®æ¹è¿éçæ³¨éãæå¥½çåæ³æ¯ç¨æä¸¾ï¼å¹¶ä¸åæ¶æ³¨é</p><div class="language-json line-numbers-mode" data-ext="json" data-title="json"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">private Integer status = UserStatus.Nomral.getValue();</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p><strong>åºæ¯3 ä¸è¦å¨ä»£ç ä¸è®°å½æ´æ¹åå²</strong></p><div class="language-json line-numbers-mode" data-ext="json" data-title="json"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">//åæ¥çæ¬ä½¿ç¨StringBufferï¼æ¹æStringBuilder bt WX 20190302</span></span> 10<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">StringBuilder sb = ....</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>è¿æ®µæ³¨é毫æ åå¨å¿ è¦ï¼å¯ä»¥éè¿gitè¿æ ·çå·¥å ·æ¥æ¥çä»£ç æ´æ°è®°å½åæ´æ°äººï¼ä»¥åæ´æ°åå ãæ²¡æå¿ è¦å¨ä»£ç éæ æ³¨ä»£ç ç¸å ³äººï¼å¦æç¨ideaï¼å¯ä»¥å¾æ¹ä¾¿çæ¥ç代ç çæ´æ°äººãå¨Editor 左侧代ç è¡ç©ºç½å¤ç¹å»å³é®ï¼å¨å¼¹åºèåéæ©Annotation</p><p><strong>åºæ¯4 æ¹æ³ä¸ä» ä» æ¯ä¸ºäºå¤ç¨ï¼æä»£ç åæåå°ä¸ä¸ªæ¹æ³éï¼éè¿æ¹æ³åæ¥è§£é代ç ä½ç¨</strong></p><p>//åéçä¿¡ç»ç¨æ·</p><div class="language-go line-numbers-mode" data-ext="go" data-title="go"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">StringBuilder</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> sb</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> new</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> StringBuilder</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">æ¨çä½é¢æ¯</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 11<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">sb</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">append</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">user</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">getBalance</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()).</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">append</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">å -</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 12<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">sb</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">append</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">platformName</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">).</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">append</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">""</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">ã</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span> 13<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">sms</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">send</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">sb</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">toString</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(),</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">user</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">getMobile</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">());</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>å¯ä»¥æåå°ä¸ä¸ªçæ¹æ³éï¼ä»£ç åè°ç¨æ¤æ¹æ³å³å¯</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">sendUserBalanceBySms</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">user</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">platformName</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>è¿ä¸ªçæ¹æ³çæä¹ä½¿å¾ä»£ç 容æç»´æ¤</p><ul><li>妿éè¦ä¿®æ¹åéçæ¯çå 容ï¼å¯ä»¥ç´æ¥å®ä½å°sendUserBalanceBySmsï¼èä¸éè¦ä»ä¸ç¾è¡ä»£ç éæ¾å°</li><li>å¨é 读sendUserBalanceBySmsè°ç¨æå¨ä»£ç åççæ¶åï¼sendUserBalanceBySmsæ å ³ç´§è¦ï¼å¯ä»¥ä¹ æ¯æ§ç忽ç¥ï¼å¦ææ²¡æè¿ä¸ªæ¹æ³ï¼ä½ éè¦é 读æ°è¡è¿ç§ä»£ç ï¼åªæä½ å·²ç»çæä»£ç äºãç¨å°æ¹æ³åè½»äºé è¯»è´æ </li></ul><p><strong>
13åºæ¯5 使ç¨ä¸ä¸ªä¸´æ¶åéä»£æ¿æ³¨é</strong></p><p>对äºä¸æ®µè®¡ç®é»è¾ï¼æè ä¸ä¸ªæ¹æ³è°ç¨ï¼ä½¿ç¨ä¸´æ¶åéæ¥è¯´æå ¶ç»æå«ä¹ï¼æ¯æ³¨éæ´å®¹æç»´æ¤ï¼å¦ä¸ä»£ç </p><p>//è¿åä¸å¹´æ»çè´¹ç¨</p><div class="language-json line-numbers-mode" data-ext="json" data-title="json"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">return calcPay(user,type);</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>å¯ä»¥ç¨ä¸ä¸ªä¸´æ¶åé表示</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">BigDecimal</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> payByYear</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> calcPay</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">user</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">type</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 14<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">return</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> payByYear</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>åºæ¯6 åæ¶æ²¡æå¿ è¦ç注é</strong></p><p>æäºæ¹æ³è¿äºç®åï¼æ²¡æå¿ è¦æ·»å 注éï¼æ¯å¦JavaBeanå¾getteråsetteræ¹æ³ï¼å¦ä¸æ²¡æå¿ è¦ç注é</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">/*ç¨æ·åç§°*/</span></span> 15<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">private</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> String</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> userName</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="_1-1-2-ä½¿ç¨æ¥å¿ååç¹" tabindex="-1"><a class="header-anchor" href="#_1-1-2-ä½¿ç¨æ¥å¿ååç¹"><span>1.1.2 ä½¿ç¨æ¥å¿ååç¹</span></a></h3><p><strong>æ¥å¿ååç¹ææï¼ä¸ä¼åä»£ç æ³¨é飿 ·å®¹æè ç</strong></p><p>èæ¿ä»¥ä¸ºçHelloWorld</p><div class="language-typescript line-numbers-mode" data-ext="typescript" data-title="typescript"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">public</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> static</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> void</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> main</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">String</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[]</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> args</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 16<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> System</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">out</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">println</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">hello </span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">args</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]);
16</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> </span></span> 17<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>å®é çHelloWorld</p><div class="language-typescript line-numbers-mode" data-ext="typescript" data-title="typescript"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">public</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> static</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> void</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> main</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">String</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[]</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> args</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 18<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">ags</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">length</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">==</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 19<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">ags is null</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">//è®°å½æ¥å¿</span></span> 20<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> Metric</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">submitEvent</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">hello-world-ags-error</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> </span></span> 21<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> ;</span></span> 22<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span> 23<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> </span></span> 24<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">ags</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">length</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 25<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">ags is </span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">Arrays</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">asList</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">ags</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">));</span></span> 26<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> Metric</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">submitEvent</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">hello-world-ags-error-2</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 27<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> //ç»§ç»æ§è¡</span></span> 28<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span> 29<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> Metric</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> helloMetric</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> Metric</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">of</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">hello-world</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> </span></span> 30<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> try</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">
30{</span></span> 31<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> </span></span> 32<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> helloMetric</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">start</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">();</span></span> 33<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> System</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">out</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">println</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">hello </span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">args</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]);</span></span> 34<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">info</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">hello world success </span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">args</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]);</span></span> 35<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">catch</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">Exception</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> ex</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 36<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">MyRatelimiter</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">tryAcquire</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()){</span></span> 37<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> //黿¢å¤§éerroræ¥å¿æçç£ç</span></span> 38<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">helloworld error </span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">ex</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 39<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">else</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">
39{</span></span> 40<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> Metric</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">submitEvent</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">too-many-error-log</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 41<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> </span></span> 42<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> //TODO å¦ä½é级å¤çï¼</span></span> 43<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> helloMetric</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">ex</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">getMessage</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">());</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> </span></span> 44<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">finally</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">
44{</span></span> 45<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> helloMetric</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">end</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">();</span></span> 46<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span> 47<span class="line"></span> 48<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="_1-2-åé" tabindex="-1"><a class="header-anchor" href="#_1-2-åé"><span>1.2 åé</span></a></h2><p>åéå½åè§èå·²ç»æå¤§é书ç±åææ¡£è¯´æï¼æ¬ç« 主è¦è§£éå¨å®¹æé 读çåéå½å</p><h3 id="_1-2-1-åéå½å" tabindex="-1"><a class="header-anchor" href="#_1-2-1-åéå½å"><span>1.2.1 åéå½å</span></a></h3><p>åéååéè¦å°½éè¡¨è¾¾å ¶çå®å«ä¹ï¼ä¸è¦ç¼©åæè ç®å</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">//æ»çæ¯ä»è´¹ç¨</span></span> 49<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">BigDecimal</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> p</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> ;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>代ç é 读å°è¿éï¼æ æ³ç¥æå«ä¹ï¼å¦æå 䏿³¨éï¼æä»¬å¨ä¸ä¸èä¹è¯´è¿ï¼æ³¨é容æè çï¼å æ¤å¯ä»¥æ¹ä¸ä¸ï¼éç¨æä¸ä¸ªææä¹çåå</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">BigDecimal</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> pay</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> ;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>ç°å®æ åµï¼å½å妿è¾é¿ï¼è½å确表达å«ä¹ï¼åºè¯¥ä½¿ç¨è¾é¿å¾ååï¼æ¯å¦</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> class</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> HelloworldService</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">
49{</span></span> 50<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>å°±æ¯ä¸é¢ä»£ç 好</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> class</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> HelloworldServ</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">{</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> </span></span> 51<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>æè </p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> class</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> Helloworld</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">
51{</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> </span></span> 52<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>ä¸éè¦æ å¿ä¹¦åè´¹å²ï¼IDEå ·å¤æºè½æç¤ºï¼è½æé«ä¹¦åé度ãä¹ä¸è¦æ å¿é 读费å²ï¼çæ£è´¹å²çæ¯ä¸å¸¸è§çå½åï¼æ¯å¦âHelloworldServâ</p><p>ææ¶ååéå太é¿ï¼æå³çæ³èµäºåéå¾å«ä¹å¤ªå¤ï¼å¦ä¸åéå½ååå æ¯æ³è¯´æç±»å为Mapçåéå å«çKeyåValueç±»å</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">Map</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> strKeyAreayValueMap</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> getAreaData</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>å®é ä¸åºè¯¥æ¯</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">Map</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"><</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">String</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">AreaData</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> areaMap</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> getAreaData</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">();</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>å¦ä¸ä»£ç ,å¤çè¿åç»æï¼ç±äºä½¿ç¨äºä¸ä¸ªæ°ç»è没æéç¨å¯¹è±¡ï¼æä»¥ç»äººæè§å½åå¾å«æ</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">Object</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[]</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> codeAndObject</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> rpc</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">query</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">....</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>妿¤å½åï¼åºç¶ä½¿å¾ä»£ç é 读è ä¸éè¦æ¥çrpc.queryæ¹æ³çå®ç°ï¼æ ¹æ®ååå°±ç¥é该å¦ä½å¤çè¿å对象ï¼ä½æ´å¥½çåæ³æ°å»ºä¸ä¸ªå¯¹è±¡ç¨æ¥è¡¨ç¤ºè°ç¨ç»æ,è¿æ ·å½åå°±ç®åå¤äºï¼é 读代ç å¾äººå¯ä»¥æ¥çRpcResultç代ç åJavadocäºè§£åºè¯¥å¦ä½å¤çret</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">RpcResult</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> ret</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> rpc</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">query</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">....</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>æäºæ åµä¸ï¼çååè¿æ¯å¾åéçï¼æ¯å¦å¾ªç¯ä¸ä½¿ç¨ç计æ°å¨ï¼é常å½å为iï¼
52åæ é常å½å为x,yçï¼ä¸å¡ç³»ç»ä¹æèªå·±çº¦å®ä¹ ä¿å¾ç®åçååï¼æ¯å¦wfè¡¨ç¤ºå·¥ä½æµï¼sku表示ååã</p><h3 id="_1-2-2-åéçä½ç½®" tabindex="-1"><a class="header-anchor" href="#_1-2-2-åéçä½ç½®"><span>1.2.2 åéçä½ç½®</span></a></h3><p>åéçä½ç½®åºè¯¥å°½éé è¿ä½¿ç¨ç¨çå°æ¹ï¼å¦æä»£ç 卿¹æ³å¼å§å¤å®ä¹äºåéï¼ç¶åå¨100è¡ä»£ç åæä½¿ç¨ï¼é£ä¹ä»£ç é 读è å¿éæ»æ¯æ¬ççï¼è§å¾ä¸æ¯å¨ç代ç ï¼èæ¯å¨ç䏿¬æ¬çå°è¯´-æåçåéä¼å¨åªéç¨å¢</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">User</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> seller</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">buyer</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 53<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">seller </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> .....</span></span> 54<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">// 50è¡ä»£ç å</span></span> 55<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">buyer </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> .....</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>â</p><p>å¦ä¸ä»£ç ï¼æå¥½å¨ä½¿ç¨buyerå°æ¹åå®ä¹ï¼å°¤å ¶æ¯ä¸å¡ç³»ç»ï¼ä¸å¡å¤æï¼æ¶åäºå¾å¤åéï¼å°±è¿å®ä¹åéï¼åè½»é è¯»è´æ </p><p>代ç åçåéå½åä¸è¦ä¸ç±»åééåï¼è¿ä¼å¯¼è´é 读å°é¾</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> class</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> Point</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">
55{</span></span> 56<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> private</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> int</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> x</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 57<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> private</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> int</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> y</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 58<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> void</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> calc</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">Point </span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">p</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 59<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> //å®ä¹ä¸ä¸ªåé</span></span> 60<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> int</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> x</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> p</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">getX</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">();</span></span> 61<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> //50è¡ä»£ç å,å¾é¾ç¥éxæçåªä¸ª</span></span> 62<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> calcLine</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">x</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">y</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 63<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span> 64<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>å¦ä¸ä»£ç ï¼å¨è°ç¨returnæ¹æ³çæ¶åï¼xå¾å®¹æè¢«è¯¯è§£ï¼è¯¯ä»¥ä¸ºä¼ å ¥çç±»åéx</p><h3 id="_1-2-3-ä¸é´åé" tabindex="-1"><a class="header-anchor" href="#_1-2-3-ä¸é´åé"><span>1.2.3 ä¸é´åé</span></a></h3><p>使ç¨ä¸äºä¸é´å鿥å¢å¼ºä»£ç å¯è¯»æ§</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">return</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> a</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">*</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">b</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">c</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">/</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">rate</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">d</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">*</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">e</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>ä¸é¢ç代ç 䏿°åµæï¼ä¸åªç¨äºä¸è¡ï¼ä½æ²¡æä¸é¢çä»£ç æ´å®¹æé 读</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">int</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> yearTotal</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> a</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">*</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">b</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 65<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">int</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> lastYearTotal</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> c</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">/</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">rate</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 66<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">int</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> todayTotal</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> d</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">*</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">e</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 67<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">int</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> total</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> yearTotal</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">lastYearTotal</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">todayTotal</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 68<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">return</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> total</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>çä¼¼å ¶ä»äººä¸è¡ä»£ç 宿似乿´çï¼ä½ ç¨äºå¤è¡ä»£ç æå®æäºä¸ä¸ªåè½ï¼ä½ä½ çä»£ç æ¾ç¶æ´å®¹æè¢«åæ¥äººé 读ãæä¸ç´è§å¾å代ç å°±è·åå°è¯´ä¸æ ·ï¼è¦çå¾æææ¯çæ£çå°è¯´ï¼å¦æä»<strong>ä»»ä½å°æ¹åå ¥å°è¯´é½è½çæ</strong>ï¼é£å°±æ¯æ¬å¥½å°è¯´ã</p><h2 id="_1-3-æ¹æ³" tabindex="-1"><a class="header-anchor" href="#_1-3-æ¹æ³"><span>1.3 æ¹æ³</span></a></h2><h3 id="_1-3-1-æ¹æ³ç¾å" tabindex="-1"><a class="header-anchor" href="#_1-3-1-æ¹æ³ç¾å"><span>1.3 .1 æ¹æ³ç¾å</span></a></h3><p>ç¨åºåé 读代ç ï¼éå°éççæ¹æ³ï¼ç¬¬ä¸æ ·ççæ¯æ¹æ³ç¾åï¼å¦ææ¹æ³ç¾åæç¡®è¡¨è¾¾äºå½æ°çåè½ï¼è¾å ¥åè¾åºï¼åçå»äºç¨åºåé è¯»æ¹æ³æ³¨éçå¯è½ï¼çè³æ¯é 读代ç çå¿ è¦ï¼</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Map </span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">buildArea</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">List</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"><</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">Area</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">></span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> areas</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>å½ä»£ç ç»´æ¤è çå°buildAreaæ¶åï¼å¹¶ä¸æ¸ æ¥Mapè¿åçæ¯ä»ä¹ï¼ä»å¿ é¡»æ¥çæ¹æ³ä½æäºè§£è¿å弿¯ä»ä¹ï¼å¦ææ¹æ³é叏夿ï¼å让é 读è é·å ¥äºä»£ç æ³¥æ½ãæ£ç¡®çä¼åæ¹å¼å ä¸èå</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Map</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"><</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">String</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">Area</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">></span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> buildArea</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">List</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"><</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">Area</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">></span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> areas</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>æ¹æ³ç¾åçåæ°æ°éåºè¯¥ä¹æ¯å¯æ§ï¼å¤ä¸ä¸ªåæ°ï¼çè§£å¤ä¸ä»½é¾åº¦ï¼å¯ä»¥éè¿æä¾é»è®¤åæ°å 以æ¹è¿ãæ¯å¦,å¯å¨å·¥ä½æµ,ï¼å®ä¹å¦ä¸æ¥å
68£</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> String </span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">startWorkflow</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">String workflowType</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">String userName</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>æå¯è½å¯å¨å·¥ä½æµè¿æ¶å工使µå¾çæ¬è¿æç¨æ·ç身份信æ¯ï¼é£ä¹å¦ä¸æ¹æ³ç¾åå°±å¾é¿äº</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> String </span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">startWorkflow</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">String workflowType</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">int</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> versionï¼String userName</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">String orgId</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>ååºè¯¥èèéç¨å¯¹è±¡å°è£
,userName å orgId å°è£
为Participantï¼è工使µç¸å
³å°è£
为StartWorklowInfo</p><div class="language-typescript line-numbers-mode" data-ext="typescript" data-title="typescript"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> class</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> StartWorklowInfo</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">
68{</span></span> 69<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> String</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> workflowType</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 70<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> int</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> version</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 71<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span> 72<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> class</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> Participant</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">{</span></span> 73<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> String</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> userName</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 74<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> String</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> orgId</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 75<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>åstartWorkflow éæ°å®ä¹ä¸º</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> String </span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">startWorkflow</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">StartWorklowInfo workflowInfo</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">Participant user</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>å¨éæè¿ä¸ªæ¥å£åä¸ä¹ ï¼å¯å¨å·¥ä½æµéæ±åæ´æ¹äºï¼ç¨æ·è¿éè¦ç¨å·¥ä½æµè§è²æ è¯ï¼å æ¤ï¼æä»¬åæ¥ä¸ºParticipant对象å¢å äºäºä¸ä¸ªroleId ï¼å°±è§£å³é®é¢äºã</p><h3 id="_1-3-2-å°æ¹æ³" tabindex="-1"><a class="header-anchor" href="#_1-3-2-å°æ¹æ³"><span>1.3.2 å°æ¹æ³</span></a></h3><p>为ä»ä¹è¦æåæ¹æ³ï¼æ¾ç¶çéçãå°±åæä»¬è¯»ä¹¦ä¸æ ·ï¼åæç« èé è¯»ï¼æ æ³æ³è±¡ï¼ä¸æ¬ç²¾å½©ã天é¾å «é¨ãçå°è¯´ï¼å¦ææ²¡æåååç« åç¸åºçæ é¢ï¼ä¸ç¥éä½ æ¯å¦è¿è½æå¿«çé 读ã</p><p>æä¸ä¸ªéæ±ï¼éè¦å¯¼å ¥excelåæ°æ®åºï¼excelå å«äºå¤ä¸ªä¸å¡é¢åçæ°æ®ï¼å¦ä¸ä»£ç çèµ·æ¥å°±å¾æ¸ ç½</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> void</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> parse</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">Sheet sheet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 76<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">
76 User</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> user</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> readUserInfo</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">sheet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 77<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> List</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"><</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">Order</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> orders</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> readUserOrderInfo</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">sheet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 78<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> UserCredit</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> credit</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> readUserCreditInfo</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">sheet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 79<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>parseæ¹æ³ä¸çå°±å¾ç®åï¼è¯»åç¨æ·ä¿¡æ¯ï¼è®¢åä¿¡æ¯è¿æä¿¡ç¨ç§¯åä¿¡æ¯ï¼å¨éæparseæ¹æ³åï¼æ¤æ¹æ³å¹¶ä¸ç®åï¼å¤§æ¦æ1000å¤è¡ï¼åæçä»»ä½ç»´æ¤é½æ¯ä¸ªç¾é¾ï¼æ¯å¦ï¼excelç䏿¶åç¨æ·é¢åçä¿¡æ¯ä¿®æ¹äºï¼ä½ ä¸å¾ä¸ç¿»ç1000å¤è¡ä»£ç ï¼å®ä½åºéè¦ä¿®æ¹çå°æ¹ï¼èéæåï¼åªéè¦é¡ºçreadUserInfoæ¹æ³é廿¾ã</p><p>å¦ä¸æ¹æ³ï¼å¤çå¼å¸¸é¨åå®é ä¸ä¹è¦æå</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">try</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">
79{</span></span> 80<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> sku </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> rpc</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">getSkuInfo</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">id</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 81<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> ResponseBuilder</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">success</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">sku</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 82<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">catch</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">AppException </span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">ex</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 83<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">ex</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">getType</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">==</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 84<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> //çç¥10è¡ä»£ç </span></span> 85<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">else</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">ex</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">getType</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">==</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 86<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> //çç¥20è¡ä»£ç </span></span> 87<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">else</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">
87{</span></span> 88<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> //çç¥20è¡ä»£ç </span></span> 89<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span> 90<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> ResponseBuilder</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">ex</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 91<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>è¿æ¯å 为代ç 主è¦é»è¾æ¯éè¿rpcè°ç¨è·åååä¿¡æ¯ï¼é误å¤çåºè¯¥æ¯æ¬¡è¦é¨åï¼ä½è¿ä¸ªä»£ç åæç¹å§å®¾å¤ºä¸»ï¼ä½¿å¾ä»£ç é 读è ä¸ç±èªä¸»ç注æå°é误å¤çé¨åï¼å¯ä»¥éæï¼ç¨ä¸ä¸ªæ¹æ³æ¥å¤çå¼å¸¸</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">try</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">
91{</span></span> 92<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> sku </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> rpc</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">getSkuInfo</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">id</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 93<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">catch</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">AppException </span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">ex</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 94<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> handle</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">ex</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 95<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> ResponseBuilder</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">ex</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 96<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>é¤äºéè¿æ¹æ³æåï¼å®æå°è¯´ç« èï¼ä¹æ¨è使ç¨å°æ¹æ³ï¼æé«ç代ç çå¯ç»´æ¤æ§ï¼æä»¬å¨ç²¾ç®æ³¨ééå·²ç»å±ç°äºï¼æåéçä¿¡ç代ç åæ½åºæä¸ä¸ªæ¹æ³ãå¦ä¸ä»£ç çæ®µ</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">boolean</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> success</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> user</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">!=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">null</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">&&</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">user</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">status</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">==</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">&&!</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">admin</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">equals</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">user</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">getName</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">())</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>è¿ä¸ªä»£ç 尽管å¾ç®åï¼ä½ä¹å¯ä»¥èèæ½è±¡åä¸ä¸ªæ¹æ³é</p><div class="language-sql line-numbers-mode" data-ext="sql" data-title="sql"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">public </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">boolean</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> validate(User user){</span></span> 97<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> user</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">!=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">null</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">&&</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">user</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">.</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">status</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">==</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">&&!</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">admin</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">.equals(</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">user</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">.</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">getName</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">)</span></span> 98<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>è¿æ ·ï¼åªéè¦è°ç¨validateæ¹æ³å³å¯ã代ç é 读è ï¼å¯ä»¥éæ©æ§ç忽ç¥è¿ä¸è¡ä»£ç ï¼è½»æ¾æå¿«ã</p><p>boolean success = validate(user);</p><h2 id="_1-4-忝" tabindex="-1"><a class="header-anchor" href="#_1-4-忝"><span>1.4 忝</span></a></h2><h3 id="_1-4-1-if-else" tabindex="-1"><a class="header-anchor" href="#_1-4-1-if-else"><span>1.4.1 if else</span></a></h3><p>代ç éæå¤§éç忝è¯å¥ï¼åæ¯è¯å¥åºè¯¥å°½éä¿è¯å°çåµå¥ä»¥æ¹ä¾¿é 读代ç ï¼å¦ä¸æ¯ä¸ä¸ªä¸å¿ è¦çåµå¥</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">CallInfo</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> info</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> ....;</span></span> 99<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">if</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">info</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">!=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">null</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 100<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">info</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">isSuccess</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()){</span></span> 101<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> true</span></span> 102<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">else</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">
102{</span></span> 103<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">info</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">xxxx</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 104<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> false</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 105<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span> 106<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> </span></span> 107<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">else</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">
107{</span></span> 108<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">info</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">yyy</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 109<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> false</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 110<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>ä¸é¢ä»£ç ï¼å¯¹è¿åç»æè¿è¡å¤çï¼è¿åç»æå¯è½ä¸ºç©ºï¼è¿åç»æå¼éçç¶æä¹å¯è½å¤±è´¥ãåµå¥äºä¿©å±åæ¯ï¼å ¶å®å¯ä»¥ç®åä¸ä¸ï¼åªç¨ä¸å±åæ¯ï¼</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">CallInfo</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> info</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> ....;</span></span> 111<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">if</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">info</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">==</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">null</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 112<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">info</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">yyy</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 113<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> false</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 114<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span> 115<span class="line"></span> 116<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">if</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">!</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">info</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">isSuccess</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()){</span></span> 117<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">info</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">xxxx</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 118<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">
118 false</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 119<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span> 120<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">.....</span></span> 121<span class="line"></span> 122<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">return</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> true</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>éæåç代ç ä¿æäºæå°ç忝åµå¥ï¼åæ¶**ï¼æéè¦çæ¯ä¿æä¸»é»è¾ç é**ï¼<strong>ä¼å å¤çé误路å¾åæ¯</strong>ï¼å©ä¸ç为æ£å¸¸ç»æï¼æååå¤çãå¦æç»´æ¤è çå°è¿å¿ï¼æ è®ºä»æ¯å¦çæè¿å代ç ï¼ä»æ»è½å¿«éå®ä½å°ä»éè¦ç»´æ¤çå°æ¹</p><h3 id="_1-4-2-switch-case" tabindex="-1"><a class="header-anchor" href="#_1-4-2-switch-case"><span>1.4.2 switch case</span></a></h3><p>switch case ç¨äºå¤åæ¯æ åµï¼ä½¿ç¨æå¸¸è§çé®é¢æ¯æ¯ä¸ªåæ¯ å å«äºå¤ªå¤ç代ç 使å¾ä»£ç ä¸å®¹æé 读.è¿ä¹è®¸åæä¸å¡è¾ä¸ºç®åï¼å¼åè æä¸å¡é»è¾æ¾å°caseéå¤çå°±å¯ä»¥äºï¼ä½å¦æä¸å¼å§ä¸è¿ä¹åï¼åæ¥è 伿²¿ç¨è¿ç§éè¯¯ä¹ æ¯ï¼å¨åæ¯ä¸å¢å è¶æ¥è¶å¤ç代ç ãæ£ç¡®çæ¹æ³æ¯ä¸å¼å§å°±case忝éåªå 嫿¹æ³è°ç¨</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">switch</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">status</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 123<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> case</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> START</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">:</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">handleTaskStart</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">taskId</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">user</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">break</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 124<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> case</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> PAUSE</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">:</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">handlePause</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">taskId</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> break</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 125<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> ......</span></span> 126<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="_1-5-åç°å¯¹è±¡" tabindex="-1"><a class="header-anchor" href="#_1-5-åç°å¯¹è±¡"><span>1.5 åç°å¯¹è±¡</span></a></h2><p>对äºç¨åºåæ¥è¯´ï¼é¢å对象设计æå·§ï¼ç¸æ¯äºå¯¹è±¡çç»åï¼ç»§æ¿ï¼å¤æï¼æè æ¯è®¾è®¡æ¨¡å¼ï¼
126åç°å¯¹è±¡è½åæ¯ä¸ä¸ªæ´éè¦çOODæè½ï¼å¨1.3.1ï¼å¯å¨å·¥ä½æµçè°ç¨éï¼æä»¬åç°äºå¯¹è±¡Participantè¡¨ç¤ºå·¥ä½æµçåä¸è ï¼ä¹åç°äºå¯¹è±¡StartWorklowInfoç¨äºä»£è¡¨å¯å¨å·¥ä½æµå®ä¾çæµç¨å®ä¹ä¿¡æ¯ï¼æ¬ç« èä»ç»ä¸äºåç°å¯¹è±¡çä¾å</p><p><strong>å½é¡¹ç®é大鿿¼æ¥çStringåMapçæ¶åï¼æå³çåºè¯¥ç¨å¯¹è±¡æ¥ä»£æ¿</strong></p><h3 id="_1-3-1-ä¸è¦ç¨string" tabindex="-1"><a class="header-anchor" href="#_1-3-1-ä¸è¦ç¨string"><span>1.3.1 ä¸è¦ç¨String</span></a></h3><p>å¨1.3.2æå°å¯¼å ¥Excelï¼å¨æå®é 项ç®éï¼æ¾ç»æ¯è¿ä¸ªæ ·å</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> void</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> parse</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">Sheet sheet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">StringBuilder error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 127<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> User</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> user</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> readUserInfo</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">sheet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 128<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> List</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"><</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">Order</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> orders</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> readUserOrderInfo</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">sheet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 129<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> UserCredit</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> credit</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> readUserCreditInfo</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">sheet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 130<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>乿以æä¾ä¸ä¸ªStringBuilder åæ°ï¼å ä¸ºéæ±æ¯å¦æè§£æåºéï¼éè¦æ¾ç¤ºåºéççä½ç½®ï¼é¡¹ç®å¼å人åå æ¤å°éè¯¯ä¿¡æ¯æ¼æ¥æåç¬¦ä¸²ï¼æåè¿åç»å端ã</p><p>妿审æ¥å ¶ä»£ç ï¼ä½ ä¼åç°è¯¥è§£ææ¹æ³æ¹æ³éææ°å个类似å¦ä¸ä»£ç </p><div class="language-go line-numbers-mode" data-ext="go" data-title="go"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">append</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">
130å¨</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">line</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">å</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">col</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">åé</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">ï¼</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">messsage</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">).</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">append</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">\\n</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>è¿ä¸¤æ®µä»£ç çé
读è
å°æä¹å¤å°±æ¯errorä½ä¸ºä¸ä¸ªStringBuilderï¼ä¸è½è¯´æå¦ä½å¤çè§£æé误ï¼é
读è
ä¸å¾ä¸çæ¸
æ¥å
·ä½å®ç°ææç¶å¤§æ--忥æçåä»»ç¨StringBuilderæ¯æ³è¿ä¹å¹²ãå¦å¤ä¸ä¸ªå°æä¹å¤å°±æ¯å¨è§£æexcelçæ¶åï¼å°±å·²ç»åæ»äºé误è¾åºçæ ·åï¼å¦ææ³æ´æ¹ï¼å°±éè¦æ¹æ¯ä¸å¤å°æ¹ ï¼æä»¬ç¥éä¸å¡çexcelè§£æï¼å ç¾è¡ä»£ç ç®æ¯å°çäºãè¦é
读è
å ç¾è¡ä»£ç éæå¯¹åæ¥è
å¹¶éæäºã</p><p><strong>æä»ä¹æ¨¡å¼æè
设计ååè½è§£å³è¿ä¸ªåï¼</strong></p><p>ææ³è¯´çæ¯ï¼å¹¶æ²¡ææ¨¡å¼å设计ååè½è§£å³ï¼å¼åè
缺å°çä»
ä»
æ¯åç°åå½çº³å¯¹è±¡çè½åï¼è®¾è®¡æ¨¡å¼æ¯é¦ä¸æ·»è±ï¼å¯¹äºexcelè§£æçé误信æ¯ï¼å®é
ä¸å°±åºè¯¥å®ä¹ä¸ä¸ªâé误信æ¯âè¿æ ·çå¯¹è±¡ãæ¯å¦</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> class</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> ExcelParseError</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">
130{</span></span> 131<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> void</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> addError</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">ParseErrorInfo </span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">info</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> ){}</span></span> 132<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> void</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> addSimpleError</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">String </span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">line</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">String </span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">col</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">String </span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">message</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> ){}</span></span> 133<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> public</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> List</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"><</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">ParseErrorInfo</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> getMessages</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(){}</span></span> 134<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> public</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> String </span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">toString</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(){</span></span> 135<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> .....</span></span> 136<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span> 137<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span> 138<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">å æ¤ï¼excelè§£ææåæ¯è¿ä¸ªæ ·å</span></span> 139<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> void</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> parse</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">Sheet sheet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">ExcelParseError error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 140<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> User</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> user</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> readUserInfo</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">sheet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 141<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> List</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"><</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">Order</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> orders</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> readUserOrderInfo</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">sheet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 142<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> UserCredit</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> credit</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> readUserCreditInfo</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">sheet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span> 143<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> </span></span> 144<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>å¤çè§£æé误ç代ç ååæå¦ä¸</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">error</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">addSimpleError</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">line</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">col</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">message</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>å¨å¾å¤é¡¹ç®éï¼é½ä¼åºç°è¯å¾ç¨Stringæ¥ä»£è¡¨å¯¹è±¡ï¼æ¬ä¹¦ç¬¬ä¸ç« 乿ä¸ä¸ªä½¿ç¨ç+å°åºçå符串æ¥ä»£è¡¨ä¸ä¸ªå¯¹è±¡çé®é¢ãå æ¤ï¼æä»¬éè¦é¿å ç¨Stringæ¥è¡¨ç¤ºå¯¹è±¡ãé¾ä»¥ç»´æ¤åéæï¼æ§è½ä¹æ¯ç³ç³çã</p><p>ä¸ä¸ªè´é¢ä¾åï¼å½æ¶ç³»ç»é ç½®éè¿ä¸ä¸ªåç¬¦ä¸²ä¼ å ¥ï¼ç¨åºåéè¿å¦ä¸ä»£ç å®ç°å ¶é»è¾</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">if</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">config</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">isopen</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()){</span></span> 145<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span> 146<span class="line"></span> 147<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">if</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">config</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">charAt</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">7</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">==</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">E</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">||</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">config</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">charAt</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">7</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">==</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">X</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 148<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>è¿ç§ä»£ç ä¹åæ ·é¾ä»¥çå°åç»´æ¤ï¼é£æä¹åæ´å¥½å¢ï¼å ¶çæ¡è¿æ¯é¢å对象ï¼å¯ä»¥å®ä¹ä¸ä¸ªConfig对象ï¼è¿æ ·ï¼ä»»ä½äººé½è½çæä»£ç ï¼é½è½éæ¶ç»´æ¤ä»£ç </p><div class="language-typescript line-numbers-mode" data-ext="typescript" data-title="typescript"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">public</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> class</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> Config</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">
148{</span></span> 149<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> String</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 150<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> public</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> Config</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">String</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">){</span></span> 151<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> this</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 152<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span> 153<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> public</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> boolean</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> isOpen</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(){</span></span> 154<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> config</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">charAt</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">3</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">==</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">D</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span> 155<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span> 156<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> public</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> boolean</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> isApppend</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(){</span></span> 157<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> config</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">charAt</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">7</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">==</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">E</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">||</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">config</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">charAt</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">7</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">==</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">X</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">'</span></span> 158<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span> 159<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="_1-3-2-ä¸è¦ç¨æ°ç»-mapåjsonobject" tabindex="-1"><a class="header-anchor" href="#_1-3-2-ä¸è¦ç¨æ°ç»-mapåjsonobject"><span>1.3.2 ä¸è¦ç¨æ°ç»ï¼MapåJSONObject</span></a></h3><p>å½ç¨åºä¸åºç°String åæ°ï¼æ°ç»åæ°ï¼ä»¥åMapï¼JSONObjectçæ¶åï¼å·²ç»å¨æéæä»¬æ¯éæ¼äºç³»ç»ç对象ã è¿ä¸ä¸ªç±»ååæ°å½ç¶éå¸¸çµæ´»ï¼è½å®¹çº³ä¸ä»»ä½æ°æ®ç»æï¼ä½æå¯è½éæ¼äºç³»ç»éå«ç对象ãå°¤å ¶æ¯æ°ç»åMapãå¦ä¸ä¾å</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">Object</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[]</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> rets</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> call</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">();</span></span> 160<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">boolean</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> success</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> (</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">Boolean</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">rets</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">];</span></span> 161<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">String</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> msg</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> (</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">String</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">rets</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">];</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>就没æéç¨å¯¹è±¡å®ä¹è¿åç»æå¥½</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">CallResult</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> rets</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> call</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">();</span></span> 162<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">boolean</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> success</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> rets</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">isSuccess</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">();</span></span> 163<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">String</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> msg</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> rets</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">getMessage</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">();</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>妿CallResultå å«äºæä¸ªè¿åå¼ï¼é£ä¹ï¼å°CallResultå®ä¹ææ³åå°±æ´å 容æé è¯»ï¼æ¯å¦è¿åCallResult</p><div class="language-java line-numbers-mode" data-ext="java" data-title="java"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> CallResult </span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">
163getUser</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">();</span></span> 164<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">//æ´å¥½çæ¹å¼</span></span> 165<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">public</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> CallResult</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"><</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">User</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">></span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> getUser</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>å ³äºè¿ä¸ç¹ï¼æä»¬å·²ç»å¨1.2.1 æ¹æ³ç¾åä¸å·²ç»åºç°è¿ç±»ä¼¼çä¾åäº</p><p>åæ ·ï¼ä½¿ç¨Mapæ¥è¡¨ç¤ºå¯¹è±¡ä¹æ¯é常ç³ç³çï¼ä»£ç é è¯»è æ ¹æ¬ä¸ç¥éMapéæå¤å°å¯¹è±¡ç屿§ï¼å¿ é¡»é è¯»å®ææä»£ç æç¥éå¦ä½ä½¿ç¨Mapï¼å¦ä¸ä»£ç ï¼ä½¿ç¨Map表示user对象ï¼å¨æåå ¥è¡ç2001å¹´åï¼Mapè¿æ¯è¢«å¾å¤å¼åè æ¨å´ï¼è®¤ä¸ºâä¸ä¸ªMap走天ä¸"ï¼ä½è¿å®é 䏿¯âæ½æ½æ´æ´èµ°èªå·±çè·¯ï¼è®©ç»´æ¤è æ è·¯å¯èµ°â</p><div class="language-sql line-numbers-mode" data-ext="sql" data-title="sql"><button class="copy" title="Copy code" data-copied="Copied"></button><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code><span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">Map user </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> new HashMap</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">;</span></span> 166<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">user</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">.</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">put</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">id</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">);</span></span> 167<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">user</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">.</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">put</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">name</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">,</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">badcode</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">);</span></span> 168<span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">user</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">.</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">put</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">gender</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">,true);</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>å½ä»£ç ç»´æ¤è å¨é 读代ç ï¼æ³ç¥éuser对象ççâgenderâ 屿§æ¯å¨ä»ä¹å°æ¹è®¾ç½®çï¼ä»æ æ³ç¨IDEç æ¥æ¾å¼ç¨ï¼ä»åªè½æç´¢æ´ä¸ªå·¥ç¨ä»£ç ï¼ææè½å®ä½å°ãæ´ç³ç³çæ¯ï¼å¦æéè¦éægenderä»booleanç±»ååæintç±»åï¼æ¯å¦ç¨booleanå¼å¾trueåfalseåå«è¡¨ç¤ºæ§å«ç·åæ§å«å¥³ï¼å¦ææ¹ä¸ºç·ï¼å¥³åæªç¥ä¸ä¸ªå¼ï¼
168éè¦æ´æ¹ä¸ºintç±»åï¼ä»ä¹ä¸å¾ä¸å°å¿è°¨æ
çæ¾éæ¯ä¸å¤ä»£ç ã妿䏿¦æ¼æï¼å¯è½æå¤±å·¨å¤§ã</p><h1 id="åè" tabindex="-1"><a class="header-anchor" href="#åè"><span>åè</span></a></h1><ul><li><a href="https://aeryzhao.github.io/cleancode-book/" target="_blank" rel="noopener noreferrer">ãClean Codeã</a></li><li><a href="https://www.yinwang.org/blog-cn/2020/02/05/how-to-read-code" target="_blank" rel="noopener noreferrer">ç¼ç¨çæºæ
§</a></li><li><a href="http://ibeetl.com/article/readablecode-1/" target="_blank" rel="noopener noreferrer">èªä¸åä¸çç¼å容æé
读ç代ç </a>ï¼æçå客ï¼</li></ul>`,156)]))}const p=i(e,[["render",t],["__file","index.html.vue"]]),d=JSON.parse('{"path":"/article/readable-code/","title":"ç¼åæè¯»ç代ç ","lang":"en-US","frontmatter":{"title":"ç¼åæè¯»ç代ç ","tags":["æ¶æ","æ°ä¹¦"],"createTime":"2025/04/18 23:06:15","permalink":"/article/readable-code/","description":"å¦ææ²¡æ¶é´ï¼å¯ä»¥ç´æ¥é
读 ç¼ç¨çæºæ
§ å¦æææ¶é´ï¼å¯ä»¥è´ä¹°ãClean Codeã 项ç®ä»£ç æ¯âç¼å䏿¬¡ï¼é
è¯»å¤æ¬¡âã é
读è
å
æ¬ä»£ç ç¼åè
ï¼æ¶æå¸ï¼å®¡æ¥äººåï¼ä»¥å忥çç»´æ¤äººåãè½è®©é
è¯»ä»£ç æ´è½»æ¾ï¼æå©äºå¢å¼ºé¡¹ç®æè
产åçå¯ç»´æ¤æ§ãæ¯åç§è½¯ä»¶å·¥ç¨æ¹æ³ï¼é¢å对象å®è·µï¼éæï¼ä»¥åæ°ææ¯åºç¨å°å°é¡¹ç®éçä¸ä¸ªéè¦åæï¼å¦æä»£ç é¾ä»¥é
è¯»ï¼ææè¿äºæ¹æ³åç论é½é¾...","head":[["meta",{"property":"og:url","content":"http://ibeetl.com/article/readable-code/"}],["meta",{"property":"og:site_name","content":"é²å¤§èµ"}],["meta",{"property":"og:title","content":"ç¼åæè¯»ç代ç "}],["meta",{"property":"og:description","content":"å¦ææ²¡æ¶é´ï¼å¯ä»¥ç´æ¥é
读 ç¼ç¨çæºæ
§ å¦æææ¶é´ï¼å¯ä»¥è´ä¹°ãClean Codeã 项ç®ä»£ç æ¯âç¼å䏿¬¡ï¼é
è¯»å¤æ¬¡âã é
读è
å
æ¬ä»£ç ç¼åè
ï¼æ¶æå¸ï¼å®¡æ¥äººåï¼ä»¥å忥çç»´æ¤äººåãè½è®©é
è¯»ä»£ç æ´è½»æ¾ï¼æå©äºå¢å¼ºé¡¹ç®æè
产åçå¯ç»´æ¤æ§ãæ¯åç§è½¯ä»¶å·¥ç¨æ¹æ³ï¼é¢å对象å®è·µï¼éæï¼ä»¥åæ°ææ¯åºç¨å°å°é¡¹ç®éçä¸ä¸ªéè¦åæï¼å¦æä»£ç é¾ä»¥é
è¯»ï¼ææè¿äºæ¹æ³åç论é½é¾..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2026-05-20T04:25:34.000Z"}],["meta",{"property":"article:tag","content":"æ¶æ"}],["meta",{"property":"article:tag","content":"æ°ä¹¦"}],["meta",{"property":"article:modified_time","content":"2026-05-20T04:25:34.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"ç¼åæè¯»ç代ç \\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-05-20T04:25:34.000Z\\",\\"author\\":[]}"]]},"headers":[],"readingTime":{"minutes":16.9,"words":5069},"git":{"updatedTime":1779251134000,"contributors":[{"name":"lijiazhi","username":"lijiazhi","email":"[email protected]","commits":2,"avatar":"https://gravatar.com/avatar/1b5114831459724ad4acc394423b4b48ecfa4a7e0659fbe07a0ce5181a1050a7?d=retro"}]},"autoDesc":true,"filePathRelative":"article/æ¶æ/readable-code.md","categoryList":[{"id":"92a2b5","sort":10000,"name":"article"},{"id":"9a9aed","sort":10005,"name":"æ¶æ"}]}');export{p as comp,d as data};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.