
1.ã¯ããã«
ãã®ããã¥ã¡ã³ãã§ã¯ãGoogleã®Javaããã°ã©ãã³ã°èšèªã§ã³ãŒãã£ã³ã°ããããã®æšæºã«ã€ããŠèª¬æããŸããJavaãœãŒã¹ã³ãŒãã¯ããã®ããã¥ã¡ã³ãã§èª¬æãããŠãããã¹ãŠã®ã«ãŒã«ãæºãããŠããå Žåã«éãããããã®æšæºã«æºæ ããŠãããšèŠãªãããŸãã
ãã®ãã¥ãŒããªã¢ã«ã§åãäžãããããã¯ã¯ãã³ãŒããã©ãŒãããã®çŸçåŽé¢ã ãã§ãªããä»ã®ã¿ã€ãã®ã³ãŒãã£ã³ã°èŠåãæšæºã«ã€ããŠã説æããŠããŸãããã ãããã®ããã¥ã¡ã³ãã¯ãäž»ã«ç§ãã¡ãã©ãã§ãåŸã峿 Œãªã«ãŒã«ã®å®çŸ©ã«çŠç¹ãåœãŠãŠãããïŒäººéãšæ©æ¢°ããŒã«ã®äž¡æ¹ã«ãã£ãŠïŒèª€ã£ãŠå®è£ ãããå¯èœæ§ã®ããæšå¥šäºé ãæäŸããŠããŸããã
1.1çšèª
ãã®ã¬ã€ãå šäœãéããŠã次ã®çšèªãå®çŸ©ãããŠããŸãã
- ã¯ã©ã¹ãšããçšèªã¯ããéåžžã®ãã¯ã©ã¹ãåæãã€ã³ã¿ãŒãã§ã€ã¹ããŸãã¯æ³šéã¿ã€ãïŒ@interfaceïŒãæå³ããããã«äœ¿çšãããŸãã
- çšèªã¯ã©ã¹éšæããåæãããã¯ããã³ã³ã¡ã³ããé€ããã¹ãŠã®é«ã¬ãã«ã®ã¯ã©ã¹ã¡ã³ããŒã®ããããããã¹ããããã¯ã©ã¹ããã£ãŒã«ããã¡ãœããããŸãã¯ã³ã³ã¹ãã©ã¯ã¿ãåç §ããããã«äœ¿çšãããŸãã
- ã³ã¡ã³ããšããçšèªã¯ãåžžã«å®è£ ã³ã¡ã³ããæããŸãããããã¥ã¡ã³ãã³ã¡ã³ãããšãããã¬ãŒãºã¯äœ¿çšããŸãããã代ããã«ãJavadocããšããçšèªã䜿çšããŸãã
æ®ãã®çšèªã¯ããã®ããã¥ã¢ã«å šäœã§å¿ èŠã«å¿ããŠæäŸãããŸãã
1.2ã¬ã€ãããŒã
ãã®ããã¥ã¡ã³ãã®ã³ãŒãäŸã¯ããã¥ãŒããªã¢ã«ã§äœ¿çšãããŠããŸããããã©ãŒãããã«å¯Ÿããå¯äžã®æ£ããã¹ã¿ã€ã«ã®ã¢ãããŒãã瀺ããŠããããã§ã¯ãããŸããã
2.ãœãŒã¹ãã¡ã€ã«ãåºç€
2.1ãã¡ã€ã«å
ãœãŒã¹ãã¡ã€ã«åã¯ãããã«ååšãã1ã€ã®ç¹å®ã®ãããã¬ãã«ã¯ã©ã¹ã®ååã§æ§æãããŸããååã¯å€§æåãšå°æåãåºå¥ããã.javaæ¡åŒµåã§çµãããŸã
2.2ãã¡ã€ã«ãšã³ã³ãŒãã£ã³ã°ïŒUTF-8
ã³ãŒãä»ãã®ãã¡ã€ã«ã¯UTF-8ã§ãšã³ã³ãŒããããŸãã
2.3ç¹æ®æå
2.3.1ã¹ããŒã¹æå
è¡æ«ã®æåã·ãŒã±ã³ã¹ãšã¯å¥ã«ãæ°Žå¹³ASCIIã¹ããŒã¹æåïŒ0x20ïŒã¯ããœãŒã¹ãã¡ã€ã«ã§èŠã€ãã£ãå¯äžã®åºåãæåã§ããã ãšããããšã ïŒ
- æåããã³æååãªãã©ã«å ã®ä»ã®ãã¹ãŠã®ç©ºçœæåã¯ãšã¹ã±ãŒããããŸã
- ã¿ãæåã¯ã€ã³ãã³ãã«ã¯äœ¿çšãããŸãã
2.3.2ç¹å¥ãªãšã¹ã±ãŒãã·ãŒã±ã³ã¹
ç¹å¥ãªãšã¹ã±ãŒãã·ãŒã±ã³ã¹ïŒ\ bã\ tã\ nã\ fã\ rã\ "ã\ 'ãããã³\\ïŒãããæåããšã«ã察å¿ãã8é²å€ïŒããšãã°ã\ 012ïŒã®ä»£ããã«ããã䜿çšããããšããå§ãããŸãã ïŒãŸãã¯Unicodeã³ãŒãïŒäŸïŒ\ u000aïŒã
2.3.3éASCIIæå
éASCIIæåã®å Žåã¯ãUnicodeæåïŒããšãã°ãâïŒãŸãã¯åçã®ãšã¹ã±ãŒãã·ãŒã±ã³ã¹ïŒããšãã°ã\ u221eïŒã䜿çšããŸããã³ãŒããããçè§£ããããèªã¿ãããããã·ã³ãã«ãåªå ããŠéžæããŸãã
Unicodeãšã³ã³ãŒãã£ã³ã°ã§ãšã¹ã±ãŒãæåã䜿çšããå Žåãããã³æå¹ãªUnicodeæåã䜿çšããå Žåã¯ããã®ãããªã³ãŒãã«èª¬æã³ã¡ã³ããä»ããããšã匷ããå§ãããŸãã
| äŸ | 泚æ |
|---|---|
| æååunitAbbrev = "ÎŒs" | åªããïŒã³ã¡ã³ãããªããŠãå®å šã«èªèããã |
| String unitAbbrev = "\ u03bcs" // "ÎŒs" | èš±å¯ãããŠããŸãããããããçç±ã¯ãããŸãã |
| String unitAbbrev = "\ u03bcs" //ã®ãªã·ã£èªã®æåmuã "s" | èš±å¯ãããŠããŸãããæ±ãã«ããããšã©ãŒãçºçããå¯èœæ§ããããŸã |
| æååunitAbbrev = "\ u03bcs" | æªãäŸïŒèªè ã¯ãããäœã§ãããããããªã |
| '\ ufeff' + content //ãã€ããªãŒããŒèšå·ãè¿ããŸã | è¯ãäŸïŒå°å·ã§ããªãæåã«ã¯ãšã¹ã±ãŒãã䜿çšããå¿ èŠã«å¿ããŠã³ã¡ã³ãããŸã |
äžéšã®ããã°ã©ã ãéASCIIæåãæ£ããåŠçã§ããªãããšãæããŠãã³ãŒããèªã¿ã«ããããªãã§ãã ããããããçºçããå Žåããã®ãããªããã°ã©ã ã¯æ£ããæ©èœãããä¿®æ£ããå¿ èŠããããŸãã
3.ãœãŒã¹ãã¡ã€ã«ã®æ§é
ãœãŒã¹ãã¡ã€ã«ã¯ã次ã®èŠçŽ ã§æ§æãããŠããŸãïŒç€ºãããŠããé åºã§ïŒã
- ã©ã€ã»ã³ã¹ãŸãã¯èäœæš©æ å ±ïŒããå ŽåïŒ
- ããã±ãŒãžå®£èš
- èŒžå ¥ã®å®£èš
- ã¯ã©ã¹å®£èš
æ£ç¢ºã«1ã€ã®ç©ºçœè¡ããååšããåã»ã¯ã·ã§ã³ãåºåããŸãã
3.1ã©ã€ã»ã³ã¹ãŸãã¯èäœæš©æ å ±ïŒããå ŽåïŒ
ã©ã€ã»ã³ã¹ãŸãã¯èäœæš©æ å ±ã¯ããããåç §ãããã¡ã€ã«ã«å«ãŸããŠããå¿ èŠããããŸãã
3.2ããã±ãŒãžå®£èš
ããã±ãŒãžã¯æ¹è¡ãªãã§å®£èšãããŸããç·å¹ ã®å¶éïŒã»ã¯ã·ã§ã³4.4ïŒã¯ãããã±ãŒãžå®£èšã«ã¯é©çšãããŸããã
3.3ã€ã³ããŒã宣èš
3.3.1ã€ã³ããŒã宣èšã®ã¯ã€ã«ãã«ãŒã
*ïŒã¯ã€ã«ãã«ãŒãïŒæåã¯ãéçãã©ããã«é¢ä¿ãªããã€ã³ããŒãã宣èšãããšãã«äœ¿çšãããŸããã
3.3.2æ¹è¡
ã€ã³ããŒãã¯æ¹è¡ãªãã§å®£èšãããŸããç·å¹ ã®å¶éã¯ãããŸããã
3.3.3é åºãšéé
èŒžå ¥åã¯æ¬¡ã®ããã«æ³šæãããŸãã
- ãã¹ãŠã®éçã€ã³ããŒãã¯1ã€ã®ãããã¯ã«é 眮ãããã°ã«ãŒãåãããŸã
- ãã¹ãŠã®ééçã€ã³ããŒãã¯å¥ã®ãããã¯ã«é 眮ãããŸã
éçã€ã³ããŒããšééçã€ã³ããŒãã®äž¡æ¹ã宣èšãããŠããå Žåããããã®ãããã¯ã¯ç©ºã®è¡ã§åºåãå¿ èŠããããŸãããããã®éã«ä»ã®ç©ºçœè¡ããã£ãŠã¯ãªããŸããã
åãããã¯å ã§ãã€ã³ããŒããããã¯ã©ã¹ãASCIIæåã®ãœãŒãé ã«ãªã¹ããããŸãã
3.3.4ãã¹ããããã¯ã©ã¹ã®éçã€ã³ããŒã
éçã€ã³ããŒãã¯ãéçã«ãã¹ããããã¯ã©ã¹ã«ã¯äœ¿çšãããŸããããã®ãããªã¯ã©ã¹ã¯ãéåžžã®ã€ã³ããŒã宣èšã§ã€ã³ããŒããããŸãã
3.4ã¯ã©ã¹å®£èš
3.4.1æ£ç¢ºã«1ã€ã®ãããã¬ãã«ã¯ã©ã¹ã宣èšãããŸã
åãããã¬ãã«ã¯ã©ã¹ã¯ãç¬èªã®ãœãŒã¹ãã¡ã€ã«ã«ãããŸãã
3.4.2ã¯ã©ã¹ã®å 容ã®é åºä»ã
ã¯ã©ã¹ã®ã¡ã³ããŒãšåæåãããã¯ãé 眮ããé åºã¯ãã³ãŒãã®çè§£ã®ããããã«å€§ããªåœ±é¿ãäžããå¯èœæ§ããããŸãããããã«ãããããã«ã¯ç°¡åã§æ£ããã¬ã·ãã¯ãããŸãããã¯ã©ã¹ãç°ãªãã°ãã³ã³ãã³ãã®é 眮ãç°ãªããŸãã
éèŠãªããšã¯ãã³ãŒããèªãã§ããããã°ã©ããŒãããã説æã§ããããã«ãåã¯ã©ã¹ã«ã¯ã³ã³ãã³ãã®è«ççãªé åºããããšããããšã§ãã
3.4.2.1ãªãŒããŒããŒããããã³ãŒãã¯åå²ããªãã§ãã ãã
ã¯ã©ã¹ã«åãååã®è€æ°ã®ã³ã³ã¹ãã©ã¯ã¿ãŒãŸãã¯ã¡ãœãããããå Žåããããã®éã«ä»ã®ã³ãŒããæ¿å ¥ããã«é çªã«é 眮ããå¿ èŠããããŸãã
4.ãã©ãŒããã
çšèª
ã¯ã©ã¹ãã¡ãœããããŸãã¯ã³ã³ã¹ãã©ã¯ã¿ãŒã®æ¬äœã¯ãããã¯æ§é ã§ãã
ã»ã¯ã·ã§ã³4.8.3.1ã«ãããšãä»»æã®é ååæååããããã¯æ§é ãšèŠãªãããšãã§ããããšã«æ³šæããŠãã ããã
4.1äžæ¬åŒ§
4.1.1äžæ¬åŒ§ã¯ã䜿çšã§ããå Žæã§äœ¿çšãããŸã
åŒã®æ¬äœã空ã§ããããã³ãŒãã1è¡ãããªãå Žåã§ããäžæ¬åŒ§ã¯ifãelseãforãwhileãããã³do-whileã§äœ¿çšãããŸãã
4.1.2é空çœãããã¯ïŒKïŒRã¹ã¿ã€ã«
äžæ¬åŒ§ã¯ã空ã§ãªããããã¯ãšãããã¯æ§é ã®KernighanãšRitchieïŒããšãžããã®æ¬åŒ§ãïŒã®ã¹ã¿ã€ã«ã«åŸã£ãŠé 眮ãããŸãïŒããããããããããã«ããããã®ã«ãŒã«ã瀺ãå°ããªã³ãŒãã远å ããããšã«ããŸãã-翻蚳è ã®ã¡ã¢ïŒïŒ
- éå§æ¬åŒ§ã®åã«æ¹è¡ã¯è¡ãããŸããã
//
if (true) {
//
if (true)
{
- æ¹è¡ã¯ãéå§æ¬åŒ§ã®åŸã«å®è¡ãããŸãã
//
while (true) {
// code
//
while (true) { // code
- éãæ¬åŒ§ã®åã«æ¹è¡ãè¡ãããŸãã
//
for () {
// code
}
//
while (true) { /* code */ }
//
if (true) {
/* code */ }
- æ¹è¡ã¯ãæ¬åŒ§ãã¡ãœãããã³ã³ã¹ãã©ã¯ã¿ãŒããŸãã¯éå¿åã¯ã©ã¹ã®åŒãŸãã¯æ¬äœãçµäºããå Žåã«ã®ã¿ãæ¬åŒ§ãéããåŸã«è¡ãããŸããæ¬åŒ§ã®åŸã«elseãcatchããŸãã¯semicolonãç¶ãå Žåãæ¹è¡ã¯è¡ãããŸããã
æ£ããå®è¡ãããã«ãŒã«ã®äŸïŒ
return () -> {
while (condition()) {
method();
}
};
return new MyClass() {
@Override public void method() {
if (condition()) {
try {
something();
} catch (ProblemException e) {
recover();
}
} else if (otherCondition()) {
somethingElse();
} else {
lastThing();
}
}
};
åæã®ããã€ãã®äŸå€ã¯ã»ã¯ã·ã§ã³4.8.1ã«èšèŒãããŠããŸã
4.1.3空ã®ãããã¯ã¯å§çž®ã§ããŸã
空ã®ãããã¯ãŸãã¯ç©ºã®ãããã¯æ§é ã¯ãKïŒRã¹ã¿ã€ã«ã«åŸãããšãã§ããŸãïŒã»ã¯ã·ã§ã³4.1.2ã§èª¬æïŒããã®ãããªãããã¯ã¯ã{}å ã«æåãæ¹è¡ãå ¥ããã«ãéããçŽåŸã«éããããšãã§ããŸãããã®ã«ãŒã«ã¯ããããã¯ãif-elseãŸãã¯try-catch-finallyãå«ããã«ããããã¯åŒã®äžéšã§ããå Žåã«ã¯é©çšãããŸããã
äŸïŒ
//
void doNothing() {}
//
void doNothingElse() {
}
// :
try {
doSomething();
} catch (Exception e) {}
4.2ã€ã³ãã³ãçšã®2ã€ã®ã¹ããŒã¹
æ°ãããããã¯ãŸãã¯ãããã¯æ§é ãéããããã³ã«ãå³åŽã®ãªãã»ããã2ã¹ããŒã¹ãã€å¢å ããŸãããããã¯ãçµäºãããšãã³ãŒãã®æ¬¡ã®è¡ã®éå§ãåã®ãªãã»ããã¬ãã«ã«ã·ãããããŸãããªãã»ããã¬ãã«ã¯ããããã¯ãšãã®ãããã¯å ã®ã³ã¡ã³ãã®äž¡æ¹ã«é©çšãããŸãïŒã»ã¯ã·ã§ã³4.1.2ã®äŸãåç §ïŒã
4.3è¡ããšã«1ã€ã®åŒ
ååŒã¯æ¹è¡ã§çµãããŸãã
4.4ç·å¹ ã100æåã«å¶éãã
Javaã³ãŒãã¯ãè¡å¹ ã100æåã«å¶éãããŠããŸãããæåããšã¯ãUnicodeèŠçŽ ã®ãããããæããŸãã以äžã«èª¬æããå Žåãé€ããå¹ ã®å¶éãè¶ ããåè¡ã¯ãã»ã¯ã·ã§ã³4.5ã§èª¬æããããã«æãè¿ãå¿ èŠããããŸãã
äŸå€ïŒ
- , (, URL Javadoc JSNI- )
- package import (. 3.2 3.3)
- ,
4.5
åãè¡ã«ããå¯èœæ§ã®ããã³ãŒããè€æ°ã®è¡ã«åå²ãããå Žåããã®çŸè±¡ã¯æ¹è¡ãšåŒã°ããŸãã
ãã¹ãŠã®ç¶æ³ã§æ¹è¡ãã©ã®ããã«å®è¡ããããæ£ç¢ºã«æ±ºå®ãããäžè¬çã«åãå ¥ããããŠããæç¢ºãªåŒã¯ãããŸãããéåžžã«å€ãã®å Žåãåãã³ãŒãã§è¡ãåå²ããæ¹æ³ã¯ããã€ããããŸãã
éåžžãæãè¿ãã¯ç·å¹ ã®ãªãŒããŒãããŒãåé¿ããããã«è¡ãããŸãããã ããã³ãŒããèš±å¯ãããå¹ å ã«ãšã©ãŸãå Žåã§ããäœæè ã®æ±ºå®ã«ãããæ°ããè¡ã«ã©ããããããšãã§ããŸãã
ãã«ããŒã¡ãœãããŸãã¯ããŒã«ã«å€æ°ãå²ãåœãŠããšãã³ãŒããã©ããããã«ç·å¹ ãªãŒããŒãããŒã®åé¡ã解決ã§ããŸã
4.5.1転éå
æ¹è¡ã®æåã®ã¬ã€ãã©ã€ã³ã¯æ¬¡ã®ããã«è¿°ã¹ãŠããŸããããé«ãæ§æã¬ãã«ã§æ¹è¡ãè¡ãããšãæãŸããã§ãããŸãïŒ
1ãå²ãåœãŠãããŠããªãã¹ããŒãã¡ã³ãã§è¡ãéåããå Žåãæåã®åã§åºåããè¡ãããŸãã
ãã®ã«ãŒã«ã¯ã次ã®ããªãã¬ãŒã¿ãŒã®ãããªãæåã«ãé©çšãããŸãã
- åå²ç¹ããã
- åç §ã¡ãœããã::ãã®äºéã³ãã³
- æ¬åŒ§å ã®ã¢ã³ãã¢ãµã³ãäžââè¬<Tã¯FooïŒBarãæ¡åŒµ>
- ãã£ãããããã¯ã®åºåãæåïŒFooException | BarException eïŒ
2.æååãå²ãåœãŠã¹ããŒãã¡ã³ãã§ã©ãããããå Žåãã©ããã¯éåžžãæåã®åŸã«è¡ãããŸãããå¥ã®è§£æ±ºç
ãåãå ¥ããããŸããããã¯ãfor-eachã«ãŒãã®ã³ãã³ã«ãé©çšãããŸãã
3.æ¹è¡æã®ã¡ãœãããŸãã¯ã³ã³ã¹ãã©ã¯ã¿ãŒã®ååã¯ãéå§æ¬åŒ§ "ïŒ"ã«ä»å ããããŸãŸã«ãªã
ãŸãã4ãæ¹è¡æã®ã³ã³ã "ã"ã¯ããã®åã®èŠçŽ ã«æ®ã
ãŸãããã®æ¬äœã¯ãäžæ¬åŒ§ã®ãªãåäžã®åŒã§æ§æãããŠããŸãã
MyLambda<String, Long, Object> lambda =
(String label, Long value, Object obj) -> {
...
};
Predicate<String> predicate = str ->
longExpressionInvolving(str);
æ¹è¡ã®äž»ãªç®çã¯ãã³ãŒããæç¢ºã«ããããšã§ãããå¿ ãããæå°è¡æ°ã§ããå¿ èŠã¯ãããŸããã
4.5.24ã€ä»¥äžã®ã¹ããŒã¹ã«ãããªãã»ããã©ã€ã³ã®ç¶ç¶
è¡ãéåãããšããåŸç¶ã®åãµãã¹ããªã³ã°ïŒåè¡ã®ç¶ãïŒã¯ãåã®ãµãã¹ããªã³ã°ã«å¯ŸããŠå°ãªããšã4ã¹ããŒã¹ã·ãããããŸãã
è€æ°ã®è¡ã®ç¶ããããå Žåããªãã»ããã¯äœæè ã®èŠæ±ã«å¿ããŠ4ã¹ããŒã¹ä»¥å ã§å€æŽã§ããŸããååãšããŠã2ã€ã®ç·å»¶é·ã¯ãæ§æçã«äžŠåãªèŠçŽ ã§å§ãŸãå Žåã«éããåããªãã»ãããæã€ããšãã§ããŸãã
ã»ã¯ã·ã§ã³4.6.3ã¯ãããŸããŸãªéã®ã¹ããŒã¹ã䜿çšããŠãåã®è¡ã«å¯ŸããŠã³ãŒããã€ã³ããæŽåãããããã®ã¬ã€ãã³ã¹ãæäŸããŸãã
4.6ã¹ããŒã¹ãšã€ã³ãã³ã
4.6.1ã€ã³ãã³ã
1ã€ã®ç©ºã®è¡ãåžžã«é 眮ãããŸã
ã1ãé£ç¶ããã¡ã³ããŒãŸãã¯ã¯ã©ã¹åæååã®éïŒãã£ãŒã«ããã³ã³ã¹ãã©ã¯ã¿ãŒãã¡ãœããããã¹ããããã¯ã©ã¹ãéçããã³åçåæåãããã¯
- äŸå€ïŒ2ã€ã®é£ç¶ãããã£ãŒã«ãéã®ç©ºã®è¡ïŒãã£ãŒã«ãéã«ã³ãŒãã¯ãããŸããïŒã¯ãªãã·ã§ã³ã§ãã空çœè¡ã¯ãå¿ èŠã«å¿ããŠãã£ãŒã«ããè«ççã«ã°ã«ãŒãåããããã«äœ¿çšãããŸã
- äŸå€ïŒenumã¯ã©ã¹å®æ°éã®ç©ºçœè¡ïŒã»ã¯ã·ã§ã³4.8.1ãåç §ïŒ
2.ãã®ããã¥ã¡ã³ãã®ä»ã®ã»ã¯ã·ã§ã³ãšã®æŽåæ§ïŒã»ã¯ã·ã§ã³3ãã»ã¯ã·ã§ã³3.3ãªã©ïŒ
空çœè¡ã¯ãã³ãŒããè«ççãªãµãã»ã¯ã·ã§ã³ã«ç·šæããåŒã®éãªã©ãã³ãŒãã®èªã¿ããããåäžãããããã«ããããå Žæã§äœ¿çšããããšãã§ããŸããã¯ã©ã¹ã®æåã®ã¡ã³ããŒãåæåãããã¯ã®åãæåŸã®ã¡ã³ããŒããŸãã¯ã¯ã©ã¹ã®åæåãããã¯ã®åŸã®ç©ºã®æååã¯æšå¥šãããŸããããçŠæ¢ãããŠããŸããã
è€æ°ã®é£ç¶ãã空çœè¡ã¯èš±å¯ãããŸãããå¿ é ãŸãã¯æšå¥šãããŸããã
4.6.2ã¹ããŒã¹
èšèªèªäœãŸãã¯ãã®ããã¥ã¡ã³ãã®ä»ã®ã«ãŒã«ã®èŠä»¶ãããã³ãªãã©ã«ãšã³ã¡ã³ãïŒJavadocãå«ãïŒãã«ãŠã³ãããªãããšãšã¯å¥ã«ãASCIIããŒãã«ããã®åäžã®ã¹ããŒã¹ã¯æ¬¡ã®å Žæã«ã®ã¿ååšã§ããŸãã1ãifã
ãªã©ã®äºçŽæžã¿ã®åèªãåºåãå ŽåforãŸãã¯catchããã³
2ã«ç¶ãéå§æ¬åŒ§ãïŒããelseãŸãã¯catchãªã©ã®äºçŽæžã¿åèªãåºåãå Žåãããã³
3ã«ç¶ãçµäºäžæ¬åŒ§ã}ããéå§äžæ¬åŒ§ã®åã {"ã2ã€ã®ç¶æ³ãé€ããŠïŒ
- @SomeAnnotationïŒ{aãb}ïŒ
- æåå[] [] x = {{"foo"}}; -{{ã®éã®ã¹ããŒã¹ã¯ã以äžã®ç¬¬8é ã«åŸã£ãŠå¿ èŠãããŸãã
4.ãã€ããªæŒç®åãŸãã¯ã¿ãŒããªæŒç®åã®ããããã®åŽ
ãã®ã«ãŒã«ã¯ãæ¬¡ã®æŒç®åã«ãé©çšãããŸãã
- ã¢ã³ãã¢ãšã¢ã³ã°ã«ãã©ã±ããã®å åŽïŒ<Tã¯FooïŒBarãæ¡åŒµããŸã>
- è€æ°ã®äŸå€ãå«ãcatchãããã¯ã®åºåãæåïŒcatchïŒFooException | BarException eïŒ
- for-eachã®ã³ãã³ "ïŒ"
- ã©ã ãåŒã®ç¢å°:(æååstrïŒ-> str.lengthïŒïŒ
ãã ãããã®ã«ãŒã«ã¯ãªãã¬ãŒã¿ãŒã«ã¯é©çšãããŸããã
- Object :: toStringãšããŠèšè¿°ãããåç §ã¡ãœããã®äºéã³ãã³ "::"
- object.toStringïŒïŒãšããŠèšè¿°ãããåºåããããããã
5ãããïŒ;ãã®åŸ ãŸãã¯ãã¿ã€ã
6ã«ãã£ã¹ãããå Žåã¯éãæ¬åŒ§ãïŒããåãã³ãŒãè¡ã«ã³ã¡ã³ããäœæããå Žåã¯ãäºéåæ¹ã¹ã©ãã·ã¥ã//ãã®äž¡åŽãè€æ°ã®ã¹ããŒã¹ã䜿çšã§ããŸãããããã§ã¯å¿ é ã§ã¯ãããŸãã
ã7ãå宣èšãšå€æ°åã®éïŒ
List<String> list
8.ãªãã·ã§ã³ïŒé ååæååã®æ¬åŒ§å
new int [] {5ã6}ããã³new int [] {5ã6}ã¯äž¡æ¹ãšãæå¹ã§ã
ã9ãåæ³šéãš[]ãŸãã¯...ã®é
ãã®ã«ãŒã«ã§ã¯ãã¹ããŒã¹ã®æç¡ã¯å¿ èŠãããŸãããè¡ã®éå§ãŸãã¯çµäºãå éšã¹ããŒã¹ã«ã®ã¿é©çšãããŸãã
4.6.3æ°Žå¹³æ¹åã®äœçœ®åããã¯å¿ èŠãããŸãã
çšèª
æ°Žå¹³æ¹åã®é 眮ãšã¯ãã³ãŒãã«ããŸããŸãªæ°ã®äœåãªã¹ããŒã¹ã远å ããŠãç¹å®ã®èŠçŽ ãåã®è¡ã®ä»ã®èŠçŽ ã®äžã«è¡šç€ºãããããã«ããããšã§ãã
ãã®æ¹æ³ã¯èš±å¯ãããŠããŸããããã®ã¬ã€ãã§ã¯å¿ é ã§ã¯ãããŸããããŸãããã§ã«é©çšãããŠããã³ãŒãã®éšåã§ã¢ã©ã€ã¡ã³ããç¶æããå¿ èŠããããŸããã
äœçœ®åãããããå Žåãšãªãå Žåã®äŸïŒ
private int x; //
private Color color; //
private int x; // ,
private Color color; //
äœçœ®åããã«ããã³ãŒãã®èªã¿ããããåäžããŸãããå°æ¥ãã®ãããªã³ãŒããç¶æããéã«åé¡ãçºçããŸãã1è¡ã ã倿ŽããããšããŸãããã®å€æŽã«ããã以åã«åãå ¥ããããã³ãŒãã®ãã©ãŒããããç Žæããå¯èœæ§ããããŸããããã¯èš±å®¹ç¯å²ã§ãããããããããããããã°ã©ããŒïŒããããããªãïŒã¯é£æ¥ããè¡ã®ã¹ããŒã¹ã®æ°ã調æŽãå§ãããããäžé£ââã®ä¿®æ£å šäœãããªã¬ãŒããå¯èœæ§ããããŸãã1ã€ã®è¡ã倿ŽãããšãïŒææªã®å ŽåïŒç¡æèã®åŽåã®ãççºæ³¢ããåŒãèµ·ããããå¯èœæ§ããããŸãããŸãã¯ããããããããŒãžã§ã³å±¥æŽã®æ å ±ãæªããã³ãŒãã®èªã¿ããããæãªããããŒãžã®ç«¶åãæªåãããŸãã
4.7ã°ã«ãŒãåãã©ã±ããããå§ãããŸã
ã³ãŒãã®äœæè ãšã¬ãã¥ãŒæ åœè ããã³ãŒããæ¬åŒ§ãªãã§èª€ã£ãŠè§£éãããå¯èœæ§ããªããæ¬åŒ§ã«ãã£ãŠèªã¿ããããªããªãããšã«åæããå Žåã«ã®ã¿ãã°ã«ãŒãåæ¬åŒ§ãçç¥ããŠãã ãããã³ãŒããèªãã 人ãJavaæŒç®åã®åªå é äœããŒãã«å šäœãèšæ¶ããŠãããšä¿¡ããçç±ã¯ãããŸããã
4.8ç¹å¥ãªãã¶ã€ã³
4.8.1åæã¯ã©ã¹
åæå®æ°ã«ç¶ãåã³ã³ãã®åŸã®æ¹è¡ã¯ãªãã·ã§ã³ã§ããäœåãªç©ºçœè¡ïŒéåžžã¯1è¡ã®ã¿ïŒãèš±å¯ãããŸãããã®ãããªã³ãŒãã®äŸã次ã«ç€ºããŸãã
private enum Answer {
YES {
@Override public String toString() {
return "yes";
}
},
NO,
MAYBE
}
宿°ã説æããã¡ãœãããšã³ã¡ã³ãã®ãªãåæã¯ã©ã¹ã®ã³ãŒãã¯ãé ååæååãšããŠè¡šãããšãã§ããŸãïŒã»ã¯ã·ã§ã³4.8.3.1ãåç §ïŒã
private enum Suit { CLUBS, HEARTS, SPADES, DIAMONDS }
åæåã¯ã¯ã©ã¹ã§ãããããã¯ã©ã¹ã«é©çšãããä»ã®ãã¹ãŠã®ã«ãŒã«ããããã«é©çšããå¿ èŠããããŸãã
4.8.2倿°å®£èš
4.8.2.1宣èšããšã«1ã€ã®å€æ°
å倿°ïŒãã£ãŒã«ããŸãã¯ããŒã«ã«ïŒã¯ãäžåºŠã«1ã€ã ã宣èšãããŸããintaãbãªã©ã®å®£èšã䜿çšãããŸããã
äŸå€ïŒforã«ãŒãã®ããããŒã§è€æ°ã®å€æ°å®£èšã䜿çšã§ããŸãã
4.8.2.2å¿ èŠãªãšãã«å€æ°ã宣èšãã
ããŒã«ã«å€æ°ã¯ããããã¯ãŸãã¯ãããã¯æ§ç¯ã®éå§æã«å®£èšããå¿ èŠã¯ãããŸãããéã«ãããŒã«ã«å€æ°ã¯ãã¹ã³ãŒããæå°åããããã«æåã«äœ¿çšãããçŽåã«å®£èšããå¿ èŠããããŸããéåžžãããŒã«ã«å€æ°ã¯å®£èšæãŸãã¯å®£èšçŽåŸã«åæåãããŸãã
4.8.3ã¢ã¬ã€
4.8.3.1é ååæååã¯ããããã¯ãã«ããããšãã§ããŸã
ä»»æã®é åã¯ããããã¯æ§é ã§ãããã®ããã«åæåã§ããŸããããšãã°ã次ã®ã³ãŒãã¯ãã¹ãŠæå¹ã§ãïŒäŸã®ãªã¹ãã¯å®å šã§ã¯ãããŸããïŒã
new int[] {
0, 1, 2, 3
}
new int[] {
0, 1,
2, 3
}
new int[]
{0, 1, 2, 3}
new int[] {
0,
1,
2,
3
}
4.8.3.2Cã¹ã¿ã€ã«ã®é å宣èšãªã
è§æ¬åŒ§ã¯ã倿°ã®åŸã§ã¯ãªããã¿ã€ãã®åŸã«é 眮ãããŸããString[] argsãString args []ã§ã¯ãããŸããã
4.8.4ã¹ã€ããã¹ããŒãã¡ã³ã
çšèª
ã¹ããŒãã¡ã³ãã®1ã€ä»¥äžã®ã°ã«ãŒãã¯ãã¹ã€ãããããã¯å ã«ãããŸããåã°ã«ãŒãã¯ã1ã€ä»¥äžã®ã©ãã«ïŒFOOïŒãšããã©ã«ã:)ã®åŸã«1ã€ä»¥äžã®ã¹ããŒãã¡ã³ãïŒãŸãã¯ãæåŸã®ã°ã«ãŒãã®å Žåã¯ãªãïŒã§æ§æãããŸãã
4.8.4.1ãªãã»ãã
ä»ã®ãããã¯ãšåæ§ã«ãã¹ã€ãããããã¯ã®å 容ã¯2ã¹ããŒã¹ãªãã»ãããããŸãã
ã¹ã€ãããããã¯ã©ãã«ã®åŸã«æ¹è¡ãäœæããããããã¯ãéããããšããšåãããã«ããªãã»ããã2ã¹ããŒã¹å¢å ããŸããæ¬¡ã®åã©ãã«ã¯ããããã¯ãéãããšããšåæ§ã«ãåã®ãªãã»ããã¬ãã«ã«æ»ããŸãã
4.8.4.2ãã¹ã¹ã«ãŒãã³ã¡ã³ãåãããŠããŸã
ãããã¯å ã§ã¯ãã¹ããŒãã¡ã³ãã®åã°ã«ãŒãã¯ãã¹ã€ããã§ã¹ã±ãžã¥ãŒã«ããæ©ãçµäºãããïŒbreakãcontinueãreturnããŸãã¯äŸå€ã®ã¹ããŒã䜿çšïŒãã³ãŒãã®å®è¡ã次ã®ã°ã«ãŒãã§ç¶è¡ããããç¶è¡ã§ãããã瀺ãã³ã¡ã³ãã§ããŒã¯ãããŸããééïŒéåžžã¯//ãã©ãŒã«ã¹ã«ãŒïŒã®ã¢ã€ãã¢ãäŒããã³ã¡ã³ãã§ååã§ãããã®ã³ã¡ã³ãã¯ãã¹ã€ãããããã¯ã®æåŸã®ã°ã«ãŒãã§ã¯å¿ èŠãããŸãããäŸïŒ
switch (input) {
case 1:
case 2:
prepareOneOrTwo();
// fall through
case 3:
handleOneTwoOrThree();
break;
default:
handleLargeNumber(input);
}
ã³ã¡ã³ãã¯ã±ãŒã¹1ã®åŸã«é 眮ãããã®ã§ã¯ãªããã¹ããŒãã¡ã³ãã°ã«ãŒãã®æåŸã«ã®ã¿é 眮ãããããšã«æ³šæããŠãã ããã
4.8.4.3åžžã«ããã©ã«ãã䜿çšãã
switchã¹ããŒãã¡ã³ãã«ã¯ãã³ãŒããå«ãŸããŠããªãå Žåã§ããããã©ã«ãã®ã©ãã«ãå«ãŸããŠããå¿ èŠããããŸãã
äŸå€ïŒenumã¿ã€ãã®ã¹ã€ãããããã¯ã¯ããã®ã¿ã€ãã®ãã¹ãŠã®å¯èœãªå€ãã«ããŒããæç€ºçãªã±ãŒã¹ãå«ãŸããŠããå Žåãããã©ã«ãã䜿çšããªãå ŽåããããŸããããã«ãããIDEãŸãã¯ãã®ä»ã®éçåæããŒã«ã¯ãäžéšã®ã±ãŒã¹ãã«ããŒãããŠããªããšããèŠåãçºè¡ã§ããŸãã
4.8.5泚é
ã¯ã©ã¹ãã¡ãœããããŸãã¯ã³ã³ã¹ãã©ã¯ã¿ãŒã«é©çšãããæ³šéã¯ãdocãããã¯ã®çŽåŸã«ç¶ããŸããåæ³šéã¯ãç¬èªã®è¡ã«ç€ºãããŸãïŒã€ãŸããè¡ããšã«1ã€ã®æ³šéïŒããããã®æ¹è¡ã¯æ¹è¡ã§ã¯ãªãããïŒã»ã¯ã·ã§ã³4.5ãåç §ïŒãã€ã³ãã³ãã¬ãã«ã¯å¢å ããŸãããäŸïŒ
@Override
@Nullable
public String getNameIfPresent() { ... }
äŸå€ïŒãã©ã¡ãŒã¿ã®ãªãåäžã®æ³šéãæåã®çœ²åè¡ãšäžç·ã«è¡šç€ºã§ããŸããæ¬¡ã«äŸã瀺ããŸãã
@Override public int hashCode() { ... }
ãã£ãŒã«ãã«é©çšãããæ³šéãdocãããã¯ã®çŽåŸã«è¡šç€ºãããŸããããã®å Žåãè€æ°ã®æ³šéïŒãã©ã¡ãŒã¿ãŒåãããŠããå¯èœæ§ããããŸãïŒã1è¡ã«ãªã¹ãã§ããŸããæ¬¡ã«äŸã瀺ããŸãã
@Partial @Mock DataLoader loader;
ãã©ã¡ãŒã¿ãããŒã«ã«å€æ°ããŸãã¯ã¿ã€ãã®æ³šéããã©ãŒãããããããã®ç¹å¥ãªèŠåã¯ãããŸããã
4.8.6ã³ã¡ã³ã
ãã®ã»ã¯ã·ã§ã³ã¯ãå®è£ ã³ã¡ã³ãå°çšã§ããJavadocã«ã€ããŠã¯ãã»ã¯ã·ã§ã³7ã§åå¥ã«èª¬æããŸãã
æ¹è¡ã®åã«ã¯ä»»æã®æ°ã®ã¹ããŒã¹ãä»ãããã®åŸã«å®è£ ã³ã¡ã³ããä»ããããšãã§ããŸãããã®ã³ã¡ã³ãã«ãããè¡ã¯ç©ºã«ãªããŸããã
4.8.6.1ãããã¯ã³ã¡ã³ãã¹ã¿ã€ã«
ãããã¯ã³ã¡ã³ãã®ã€ã³ãã³ãã¬ãã«ã¯ãåšå²ã®ã³ãŒããšåãã§ãããããã¯ã³ã¡ã³ãã¯ã/ *âŠ* /ãŸãã¯//âŠã®ããããã«ãªããŸãã/*âŠ*/ã®ãããªè€æ°è¡ã®ã³ã¡ã³ãã®å ŽåãåŸç¶ã®è¡ã¯*ã§å§ãŸããåã®è¡ã®*ã«æããå¿ èŠããããŸãã
/*
* This is // And so /* Or you can
* okay. // is this. * even do this. */
*/
ã³ã¡ã³ãã¯ãã¢ã¹ã¿ãªã¹ã¯ããã®ä»ã®èšå·ã§è¡šãããé·æ¹åœ¢ã§å²ãŸããŠããŸããã
è€æ°è¡ã®ã³ã¡ã³ããäœæãããšãã«ãèªåã³ãŒããã©ãŒããã¿ã§å¿ èŠã«å¿ããŠïŒæ®µèœã®ã¹ã¿ã€ã«ã§ïŒè¡ãåå²ããå Žåã¯ã/ * ... * /ã¹ã¿ã€ã«ã䜿çšããŸããã»ãšãã©ã®ãã©ãŒããã¿ã¯ã1è¡ã®ã³ã¡ã³ããããã¯ã§ã¯ãããè¡ãããšãã§ããŸãã//..ã
4.8.7修食å
ã¯ã©ã¹ããã³ãã£ãŒã«ã修食åãååšããå Žåã¯ãJavaèšèªä»æ§ã§æšå¥šãããŠããé åºã§è¡šç€ºãããŸãã
public protected private abstract default static final transient volatile synchronized native strictfp
4.8.8æ°å€ãªãã©ã«
é·ãã¿ã€ãã¯ãå°æåã§ã¯ãªã倧æåã®Lã䜿çšããŸãïŒæ°åã®1ãšæ··åããªãããã«ïŒãããšãã°ã300_000_000lã§ã¯ãªã300_000_000Lã§ãã
5.ããŒãã³ã°
5.1ãã¹ãŠã®èå¥åã®äžè¬èŠå
èå¥åã¯ASCIIã®æåãšæ°åã®ã¿ã䜿çšãã以äžã«ç€ºãå Žåã¯äžç·ã䜿çšããŸãã
ãããã£ãŠããã¹ãŠã®æå¹ãªèå¥ååã¯ãéåžžã®åŒ\ w +ïŒ1å以äžåºçŸããè±æ°åïŒãšäžèŽããŸãã
name_ãmNameãs_nameãkNameãªã©ã®ç¹å¥ãªãµãã£ãã¯ã¹ãŸãã¯ãã¬ãã£ãã¯ã¹ã䜿çšããååã¯ããã®ãã¥ãŒããªã¢ã«ã®ã¹ã¿ã€ã«ã«æºæ ããŠããŸããã
5.2ããŸããŸãªã¿ã€ãã®èå¥åã®ã«ãŒã«
5.2.1ããã±ãŒãžå
ããã±ãŒãžåã¯ãcamelCaseãäžç·ãªãã§å°æåã§èšè¿°ããå¿ èŠããããŸãã
æ£è§£ïŒcom.example.deepspace
äžæ£è§£ïŒcom.example.deepSpaceãŸãã¯com.example.deep_space
5.2.2ã¯ã©ã¹å
ã¯ã©ã¹åã¯UpperCamelCaseã¹ã¿ã€ã«ïŒå€§æåã®æåã®æåïŒã§æžãããŠããŸãã
ã¯ã©ã¹åã¯éåžžãåè©ãŸãã¯åè©å¥ã§ããããšãã°ãCharacterãŸãã¯ImmutableListã§ãã
ã€ã³ã¿ãŒãã§ã€ã¹åã¯ãåè©ãŸãã¯åè©å¥ïŒããšãã°ããªã¹ãïŒã«ããããšãã§ããŸããã圢容è©ãŸãã¯åœ¢å®¹è©ã®çµã¿åããïŒããšãã°ãèªã¿åãå¯èœïŒã«ããããšãã§ããŸãã
泚éã¿ã€ãã«ååãä»ããããã®ç¹å®ã®èŠåã確ç«ãããèŠåã¯ãããŸããã
ãã¹ãã¯ã©ã¹ã®ååã¯ããã¹ãããŠããã¯ã©ã¹ã®ååã§å§ãŸããTestã§çµãããŸããããšãã°ãHashTestãŸãã¯HashIntegrationTestã§ãã
5.2.3ã¡ãœããå
ã¡ãœããåã¯lowerCamelCaseã¹ã¿ã€ã«ã§èšè¿°ãããŸãã
ã¡ãœããåã¯éåžžãåè©ãŸãã¯åè©å¥ã§ããããšãã°ãsendMessageãŸãã¯stopã
JUnitãã¹ãã¡ãœããåã§ã¢ã³ããŒã¹ã³ã¢ã䜿çšããŠãååå ã®è«çã³ã³ããŒãã³ããåºåãããšãã§ããŸããããã«ãåã³ã³ããŒãã³ãã¯lowerCamelCaseã¹ã¿ã€ã«ã§èšè¿°ãããŠããŸããå žåçãªãã¿ãŒã³ã¯æ¬¡ã®ãšããã§ãã
<methodUnderTest>_<state>, , pop_emptyStack
ãã¹ãã¡ãœããã«ååãä»ããæ£ããæ¹æ³ã¯1ã€ã§ã¯ãããŸããã
5.2.4宿°å
宿°ã¯CONSTANT_CASEã¹ã¿ã€ã«ã§ååãä»ããããŸãããã¹ãŠã®æåã¯å€§æåã§ãååèªã¯äžç·ã§åºåãããŠããŸãããããã宿°ãšã¯æ£ç¢ºã«ã¯äœã§ããïŒ
宿°ã¯ãå 容ãäžå€ã§ããéçãªæçµãã£ãŒã«ãã§ãããç®ã«èŠããå¯äœçšã®ãªãã¡ãœããã§ããããã¯ãããªããã£ããæååãäžå€åãããã³äžå€åã®äžå€ã³ã¬ã¯ã·ã§ã³ã«é©çšãããŸãããªããžã§ã¯ãã®èгå¯å¯èœãªç¶æ ãå€åããå¯èœæ§ãããå Žåãããã¯äžå®ã§ã¯ãããŸããããªããžã§ã¯ããæ±ºããŠå€æŽããªããšããåçŽãªæå³ã ãã§ã¯ååã§ã¯ãããŸããã
äŸïŒ
//
static final int NUMBER = 5;
static final ImmutableList<String> NAMES = ImmutableList.of("Ed", "Ann");
static final ImmutableMap<String, Integer> AGES = ImmutableMap.of("Ed", 35, "Ann", 32);
static final Joiner COMMA_JOINER = Joiner.on(','); // because Joiner is immutable
static final SomeMutableType[] EMPTY_ARRAY = {};
enum SomeEnum { ENUM_CONSTANT }
//
static String nonFinal = "non-final";
final String nonStatic = "non-static";
static final Set<String> mutableCollection = new HashSet<String>();
static final ImmutableSet<SomeMutableType> mutableElements = ImmutableSet.of(mutable);
static final ImmutableMap<String, SomeMutableType> mutableValues =
ImmutableMap.of("Ed", mutableInstance, "Ann", mutableInstance2);
static final Logger logger = Logger.getLogger(MyClass.getName());
static final String[] nonEmptyArray = {"these", "can", "change"};
宿°åã¯éåžžãåè©ãŸãã¯åè©å¥ã§ãã
5.2.5é宿°ãã£ãŒã«ãã®åå
宿°ã§ã¯ãªãïŒéçãã©ããã«é¢ä¿ãªãïŒãã£ãŒã«ãã®ååã¯ãlowerCamelCaseã¹ã¿ã€ã«ã§èšè¿°ãããŸãã
ãã®ãããªãã£ãŒã«ãã®ååã¯éåžžãåè©ãŸãã¯åè©å¥ã§ããããšãã°ãcomputedValuesãŸãã¯indexã
5.2.6ãã©ã¡ãŒã¿å
ãã©ã¡ãŒã¿åã¯lowerCamelCaseã¹ã¿ã€ã«ã§èšè¿°ãããŠããŸãã
ãããªãã¯ã¡ãœããã§ã¯ã1æåã®ãã©ã¡ãŒã¿åã¯é¿ããŠãã ããã
5.2.7ããŒã«ã«å€æ°å
ããŒã«ã«å€æ°åã¯lowerCamelCaseã¹ã¿ã€ã«ã§èšè¿°ãããŸãã
ãããã¯æçµçã§äžå€ã§ãããããŒã«ã«å€æ°ã¯å®æ°ãšã¯èŠãªãããªãããã宿°ãšåãã¹ã¿ã€ã«ã§èšè¿°ããªãã§ãã ããã
5.2.8ã¿ã€ã倿°ã®åå
åã¿ã€ã倿°ã¯ã次ã®2ã€ã®ã¹ã¿ã€ã«ã®ããããã«åŸã£ãŠååãä»ããããŸãã
- åäžã®å€§æåããã®åŸã«éåžžã®çªå·ïŒEãTãXãT2ãªã©ïŒãç¶ããããšãã§ããŸãã
- ã¯ã©ã¹åïŒã»ã¯ã·ã§ã³5.2.2ãåç §ïŒã®åŸã«å€§æåã®TïŒäŸïŒRequestTãFooBarTïŒãç¶ã圢åŒã®ååã
5.3ãã£ã¡ã«ã¹ã¿ã€ã«ïŒcamelCaseïŒ
çç¥åœ¢ããIPv6ãããiOSããªã©ã®éå®å衚çŸã®å Žåãªã©ãè±èªã®ãã¬ãŒãºãã©ã¯ãã¹ã¿ã€ã«ã«å€æããæ¹æ³ãè€æ°ããå ŽåããããŸãã
äºæž¬å¯èœæ§ãé«ããããã«ããã®ã¬ã€ãã§ã¯æ¬¡ã®ïŒäŸç€ºçãªïŒã¹ããŒã ã«ã€ããŠèª¬æããŸãã
ååã®å ã®åœ¢åŒããéå§ã
ãŸãã1ããã¬ãŒãºãéåžžã®ASCIIã«å€æãããã¹ãŠã®ã¢ãã¹ããããåé€ããŸããããšãã°ãããã¥ã©ãŒã®ã¢ã«ãŽãªãºã ãã¯ããã¥ã©ãŒã®ã¢ã«ãŽãªãºã ãã«å€æã§ããŸã
ã2ãçµæãåèªã«åå²ããã¹ããŒã¹ãšæ®ãã®å¥èªç¹ïŒéåžžã¯ãã€ãã³ïŒãç Žæ£ããŸãã
- æšå¥šäºé ïŒåèªããã§ã«éåžžã®ããã£ã¡ã«ãã¹ã¿ã€ã«ã§å ±éã®åœ¢åŒãæã£ãŠããå Žåã¯ããããæ§æèŠçŽ ã«åå²ããŸãïŒããšãã°ããAdWordsãã¯ãåºååèªãã«å€æãããŸãïŒããiOSãã®ãããªåèªã¯ãå®éã«ã¯ã©ã¯ãã¹ã¿ã€ã«ã§ã¯ãªãããšã«æ³šæããŠãã ãããèŠåã«æºæ ããŠããªãããããã®æšå¥šäºé ã¯é©çšãããŸããã
3.次ã«ããã¹ãŠãå°æåïŒçç¥åœ¢ãå«ãïŒã«å€æããŠãããæåã®æåã倧æåã«å€æããŸãã
- ...ãã¹ãŠã®åèªã§UpperCamelCaseã¹ã¿ã€ã«ãå®çŸããããŸãã¯
- ... lowerCamelCaseã¹ã¿ã€ã«ãå®çŸããæåã®ãã®ãé€ããã¹ãŠã®åèªã§
4.æåŸã«ããã¹ãŠã®åèªã1ã€ã®èå¥åã«é£çµããŸãã
å ã®åèªã®å€§æåãšå°æåã¯ã»ãšãã©å®å šã«ç¡èŠãããããšã«æ³šæããŠãã ããã
äŸïŒ
| å圢 | æ£ãã | éã |
|---|---|---|
| ãXMLHTTPãªã¯ãšã¹ãã | XmlHttpRequest | XMLHTTPRequest |
| ãæ°èŠé¡§å®¢IDã | newCustomerId | newCustomerID |
| ãã€ã³ããŒã¹ããããŠã©ããã | innerStopwatch | innerStopWatch |
| ãiOSã§IPv6ããµããŒãããŸããïŒã | supportIpv6OnIos | IPv6OnIOSããµããŒã |
| ãYouTubeã€ã³ããŒã¿ãŒã | YouTubeImporter
YoutubeImporter * |
*èš±å¯ãããŠããŸãããæšå¥šãããŠããŸããã
泚ïŒè±èªã®äžéšã®åèªã§ã¯ããã€ãã³ããããŸãã«äœ¿çšãããŠããŸããããšãã°ããnonemptyããšãnon-emptyãã®äž¡æ¹ãæ£ãããããã¡ãœããåcheckNonemptyãšcheckNonEmptyãæ£ããã§ãã
6.ããã°ã©ãã³ã°ã®ç·Žç¿
6.1åžžã«@Overrideã¢ãããŒã·ã§ã³ã䜿çšãã
ã¡ãœããã¯ãå®éã«ãªãŒããŒã©ã€ãããããã³ã«@Overrideã¢ãããŒã·ã§ã³ã§ããŒã¯ãããŸããããã¯ã芪ã¯ã©ã¹ã®ã¡ãœããããªãŒããŒã©ã€ãããåå«ã¯ã©ã¹ã®ã¡ãœãããšãã¹ãŒããŒã€ã³ã¿ãŒãã§ã€ã¹ã®ã¡ãœããããªãŒããŒã©ã€ãããã€ã³ã¿ãŒãã§ã€ã¹ã®ã¡ãœããã®äž¡æ¹ã«é©çšãããŸãã
äŸå€ïŒèŠªã¡ãœããã@Deprecated泚éã§ããŒã¯ãããŠããå Žåãæ³šéã¯çç¥ã§ããŸãã
6.2ãã£ãããããäŸå€ãç¡èŠããªãã§ãã ãã
ãã£ãããããäŸå€ã«å¿çããŠã¢ã¯ã·ã§ã³ãå®è¡ããå¿ èŠããªãç¶æ³ãçºçããããšã¯éåžžã«ãŸãã§ãïŒäžè¬çãªè§£æ±ºçã¯ããã°ã«èšé²ãããããäžå¯èœããšèŠãªãããå Žåã¯ãäŸå€ãAssertionErrorãšããŠã¹ããŒããããšã§ãïŒã
以äžã¯ãcatchãããã¯ã§ã¢ã¯ã·ã§ã³ãå®è¡ããªãããšãæ¬åœã«é©åãªå Žåã®èª¬æã³ã¡ã³ãä»ãã®äŸã§ãã
try {
int i = Integer.parseInt(response);
return handleNumericResponse(i);
} catch (NumberFormatException ok) {
// it's not numeric; that's fine, just continue
}
return handleTextResponse(response);
äŸå€ïŒãã¹ãã§ã¯ããã¹ãåãäºæãããŠããå ŽåããŸãã¯ååãæåŸ å€ã§å§ãŸãå Žåããã£ãããããäŸå€ã¯ç¡èŠãããã³ã¡ã³ããå€ãããããšããããŸãã以äžã¯ããã¹ã察象ã®ã³ãŒããäºæãããã¿ã€ãã®äŸå€ãã¹ããŒããããšã瀺ãéåžžã«äžè¬çãªã€ãã£ãªã ã§ãããããããã§ã³ã¡ã³ãã¯å¿ èŠãããŸããã
try {
emptyStack.pop();
fail();
} catch (NoSuchElementException expected) {
}
6.3éçã¡ã³ããŒã®å Žåãã¯ã©ã¹åã䜿çšããŸã
ã¯ã©ã¹ãªããžã§ã¯ããžã®åç §ããã®ãªããžã§ã¯ããè¿ãåŒã§ã¯ãªããã¯ã©ã¹åãä»ããŠéçã¯ã©ã¹ã®ã¡ã³ããŒãåç §ããå¿ èŠããããŸãã
Foo aFoo = ...;
Foo.aStaticMethod(); //
aFoo.aStaticMethod(); //
somethingThatYieldsAFoo().aStaticMethod(); //
6.4ãã¡ã€ãã©ã€ã¶ãŒã䜿çšããªãã§ãã ãã
Object.finalizeã¡ãœããããªãŒããŒã©ã€ãããå¿ èŠãããããšã¯éåžžã«ãŸãã§ãã
ãã³ãïŒ
ããã¯è¡ããªãã§ãã ãããæ¬åœã«å¿ èŠãªå Žåã¯ãæåã«å¹æçãªJavaã¢ã€ãã 7ãèªã¿ãå®å šã«çè§£ããŠããããã¡ã€ãã©ã€ã¶ãŒãé¿ããŠãã ããã
7. Javadoc
7.1ãã©ãŒããã
7.1.1ã¡ã€ã³ãã©ãŒã
Javadocãããã¯ã®åçŽãªãã©ãŒãããã¯ã次ã®äŸã«åŸããŸãã
/**
* Multiple lines of Javadoc text are written here,
* wrapped normally...
*/
public int method(String p1) { ... }
...ãŸãã¯1è¡ã§ïŒ
/** An especially short bit of Javadoc. */
åçŽãªåœ¢åŒã¯åžžã«é©çšå¯èœã§ãã1è¡ã®ãã©ãŒã ã¯ãJavadocãããã¯å šäœïŒã³ã¡ã³ãããŒã«ãŒãå«ãïŒã1è¡ã«åãŸãå Žåã«é©çšã§ããŸããããã¯ããããã¯ã«@returnãªã©ã®ã¿ã°ããªãå Žåã«ã®ã¿é©çšãããããšã«æ³šæããŠãã ããã
7.1.2段èœ
1ã€ã®ç©ºçœè¡ãã€ãŸããæŽåãããå é ã®ã¢ã¹ã¿ãªã¹ã¯ïŒ*ïŒã®ã¿ãå«ãè¡ããæ®µèœéããã³ãããã¯ã¿ã°ã°ã«ãŒãã®åã«è¡šç€ºãããŸãïŒååšããå ŽåïŒãæåã®æ®µèœãé€ããã¹ãŠã®æ®µèœã«ã¯ãæåã®åèªã®çŽåã«<p>ãå«ãŸããåŸã«ã¹ããŒã¹ã¯ãããŸããã
7.1.3ãããã¯ã¿ã°
ãã¹ãŠã®ãããã¯ã¿ã°ã¯ã@ paramã@ returnã@ throwsã@ deprecatedã®é åºã§ããããããã®4ã€ã®ã¿ã€ãã空ã®èª¬æãšãšãã«ååšããããšã¯ãããŸããããããã¯ã¿ã°ã1è¡ã«åãŸããªãå Žåãç¶ç¶è¡ã¯@ãã4ã€ïŒãŸãã¯ãã以äžïŒã®ã¹ããŒã¹ã§ã€ã³ãã³ããããŸãã
7.2æçµã¹ãããã
åJavadocãããã¯ã¯ãçãèŠçŽã¹ããããã§å§ãŸããŸãããã®ã¹ããããã¯éåžžã«éèŠã§ããã¯ã©ã¹ãã¡ãœããã®ã€ã³ããã¯ã¹ãªã©ãç¹å®ã®ã³ã³ããã¹ãã«è¡šç€ºãããå¯äžã®ããã¹ãã§ãã
ãã®ã¹ããããã¯ãå šæã§ã¯ãªããåè©ãŸãã¯åè©ã®ãã¬ãŒãºã§ãã{@code Foo}ã¯...ãŸãã¯ãã®ã¡ãœããã¯...ãè¿ããŸãããŸããã¬ã³ãŒãã®ä¿åã®ãããªå®å šãªè¯å®æã圢æããããšããããŸããããã ãããã®ããã»ãŒãžã¯ãå®å šãªæã§ãããã®ããã«å€§æåã§åºåãããŠããŸãã
ãã³ãïŒ/ ** @ return顧客ID * /ã®ãããªåçŽãªJavadocãäœæããã®ã¯ããããééãã§ããããã¯æ£ãããªããããæ¬¡ã®ããã«ä¿®æ£ããå¿ èŠããããŸã/ **顧客IDãè¿ããŸãã* /ã
7.3Javadocãé©çšãããå Žå
Javadocã¯ã以äžã§èª¬æããå Žåãé€ããŠãå°ãªããšããã¹ãŠã®ãããªãã¯ã¯ã©ã¹ãããã³ãã®ãããªã¯ã©ã¹ã®ãã¹ãŠã®ãããªãã¯ããã³ä¿è·ãããã¡ã³ããŒã«ååšããŸãã
ã»ã¯ã·ã§ã³7.3.4ããªãã·ã§ã³ã®Javadocã§èª¬æãããŠããããã«ã远å ã®Javadocãååšããå ŽåããããŸãã
7.3.1äŸå€ïŒèªåèªèº«ã説æããã¡ãœãã
Javadocã¯ããfooãè¿ãã以äžã®ããšãæ¬åœã«èšããªãå Žåã®getFooã®ãããªåçŽã§æçœãªã¡ãœããã®ãªãã·ã§ã³ã§ãã
éèŠïŒäžè¬ã®èªè ãå¿ èŠãšããå¯èœæ§ã®ããé¢é£æ å ±ãçç¥ããããšãæ£åœåããããã«ããã®äŸå€ãåç §ããããšã¯äžé©åã§ãã
ããšãã°ãgetCanonicalNameãšããååã®ã¡ãœããã®å Žåãããã¥ã¡ã³ããçç¥ããªãã§ãã ããïŒã¡ãœããåã«/ **æ£èŠåã®ã¿ãè¿ãããããšãæ£åœåããŠãã ããã* /ïŒã³ãŒããèªãã§ããå¹³åçãªäººãããæ£èŠåããšããçšèªã®æå³ãçãããšããã§ããªãå ŽåïŒ
7.3.2äŸå€ïŒãªãŒããŒã©ã€ã
Javadocã¯ãã¹ãŒããŒã¯ã©ã¹ïŒãŸãã¯ã¹ãŒããŒã€ã³ã¿ãŒãã§ã€ã¹ïŒã®ã¡ãœããããªãŒããŒã©ã€ãããã¡ãœãããåžžã«äŒŽããšã¯éããŸããã
7.3.4ãªãã·ã§ã³ã®Javadoc
ä»ã®ã¯ã©ã¹ãã¡ã³ããŒã«ã¯ãå¿ èŠã«å¿ããŠããŸãã¯å¿ èŠã«å¿ããŠJavadocãä»å±ããŠããŸãã
ã¯ã©ã¹ãŸãã¯ã¡ã³ããŒã®äžè¬çãªç®çãŸãã¯åäœãå®çŸ©ããããã«å®è£ ã³ã¡ã³ãã䜿çšãããå Žåã¯åžžã«ããã®ã³ã¡ã³ãã¯JavadocãšããŠæžã蟌ãŸããŸãïŒ/ **ã䜿çšïŒã
ãªãã·ã§ã³ã®Javadocã¯ãã»ã¯ã·ã§ã³7.1.2ã7.1.3ãããã³7.2ã®ãã©ãŒãããèŠåã«åŸãå¿ èŠã¯ãããŸããããããã¯ãã¡ããæšå¥šãããŸãã
ãã®ç¿»èš³ã¯ãç§ãã¡ã®ããã°ã§ãå ¥æã§ããŸãã