Java SEã®æ¬¡æããŒãžã§ã³(Java SE 7)ã§ã®å°å ¥ãæ€èšãããŠãããããããã£ããšãããã«äŒŽãèšèªä»æ§å€æŽãå šè²ãçŸãã€ã€ãããjava.netå ã®Remi Foraxæ°ã®ããã°ã«ãããšãããããã£ã®ä»æ§ã¯çŸåšãã©ãã3ãé²èЧã§ããç¶æ ã«ãããšãããæ¬çš¿ã§ã¯ãã®ããã¥ã¡ã³ããåºã«ãããããã£ãçŸæç¹ã§ã©ã®ããã«æ€èšãããŠããã®ããèŠãŠããããã
ãŸãå ã«ãçŸåšã®Javaèšèªã«ãããŠãããããã£ããã©ãããæ±ããªã®ãã埩ç¿ããŠããããã
ãåãã®ãšããããããã£ãšã¯ãã¯ã©ã¹ãæã€ãç¶æ ãã«å¯ŸããŠã¢ã¯ã»ã¹ããããã®APIã ãå€ãã®å Žåããã£ãŒã«ããå®äœã«æã€ããèšè¿°ã§ããã®ã¯ããã ãã§ã¯ãªãã
ã¯ã©ã¹ã®ç¶æ ã倿Žãããå Žåãå¯äœçšãšããŠäœããã®åŠçãå®è¡ããªããã°ãªããªãããšããããããããã¯ã©ã¹å®è£ ã®è©³çްãã«ãã»ã«åããããã®ä»çµã¿ããå€ãã®ããã°ã©ãã³ã°èšèªã§ããããã£ãšåŒã¶ããJavaã«ã¯çŸåšã®ãšããããããã£ãèšèªä»æ§ãšããŠå®çŸ©ãããŠããªãã£ãã
代ããã«JavaBean仿§ãšããæ çµã¿ã®äžã§ãèšèªä»æ§å€ã®åãæ±ºããšããŠJavaã«ããããããããã£ãã®æ±ããå®ããããŠãããããã¯set/getãæ¥é èŸã«æã¡ãããã«ç¶ãåèªã®é æåã倧æåã«ããååãæã€ã¡ãœãããšãããã®ã§ãã£ã(现ããèšãã°ãbooleanåã®èªã¿åãããããã£ã¯isã§å§ããããšãèš±ããããããgetURL()ãã®ããã«æ¥é èŸã®åŸã«è€æ°å€§æåãé£ç¶ããŠãããã£ããããšãã£ãåãæ±ºãããã)ããããã¯äžè¬ã«ã¢ã¯ã»ããµã¡ãœãããšåŒã°ãããããããèŠåã«åã£ãAPIãšããŠjava.beansããã±ãŒãžãæšæºAPIã«çšæãããŠããããã®APIãçšããã°ãæååãšãªãã¬ã¯ã·ã§ã³ã䜿ã£ãŠããããã®ã¢ã¯ã»ããµã¡ãœããã«å¯Ÿããããããã£ããšããŠã¢ã¯ã»ã¹ã§ããã®ã§ãããJava SE 7ã§é²ããããŠããåãçµã¿ã¯ãããããããæ¹ãæ ¹æ¬ããèŠçŽãããšããåãã§ããã
ã¢ã¯ã»ããµã¡ãœãããšããã¢ãããŒãã¯ã以äžã®ãããªæ¬ ç¹ãæ±ããŠããã
- åœåèŠçŽã«æºããæååæäœãšããªãã¬ã¯ã·ã§ã³ãçšãããããã³ã³ãã€ã«æã®ãã§ãã¯ãåããªã
- ã¢ã¯ã»ããµã¡ãœãããèšè¿°ããããã®ã䌌ããããªã³ãŒãã倧éã«å¿ èŠãšãªã
- ééããç¯ãããããå ·äœçã«ã¯ãsetterã¡ãœããã®åç§°ã ããå€ããŠgetterãå€ãå¿ããã誀ã£ãŠã¢ã¯ã»ããµããªãŒããŒããŒãããŠããŸãããªã©
ããããæ¬ ç¹ãè£ãã¹ããJava7ã§å°å ¥ãããããããã£ã¯ä»¥äžã®ãããªãã®ãç®æããŠããã
- ããããŠç°¡æœãªææ³ã§ããããã£ãå®çŸ©ã§ããããã«ããããšã§ãã³ãŒãèšè¿°éãæžãããã±ã¢ã¬ã¹ãã¹ãé²ã
- ããããã£ã«å¯ŸããŠåçã«ã¢ã¯ã»ã¹ããããã®ææ³ã远å ããå¯èœãªéãã³ã³ãã€ã«æã«ãã§ãã¯ãè¡ã
ã§ã¯ãå ·äœçã«èŠãŠãããã
ç°¡æœã«ãªã£ãããããã£ã®å®çŸ©æ¹æ³
çŸåšã®ãã©ããã§æ€èšãããŠããããããã£ã®å®çŸ©æ¹æ³ã¯ä»¥äžã®ãããªãã®ã§ããã
- ããŒã«ã«ããŒã¯ãŒããpropertyããå°å ¥ãããpublic property String s;ãã®ããã«å®£èšã§ãã
- èªã¿åãå°çšãæžã蟌ã¿å°çšããããã£ã®äœææ¹æ³ã¯ãããŒã«ã«ããŒã¯ãŒãget/setãããããã£å®£èšã®åŸã«èšè¿°ããããšã§è¡ããäŸãã°ããpublic property String s get;ããšããã°èªã¿åãå°çšã«ãªã
- ããããã£ã®å€æŽã«å¿ããŠåŠçãå®è¡ãããããšãã§ãããããããããããã£(ããŠã³ãããããã£)ã¯ã宣èšã®åŸã«ããŒã«ã«ããŒã¯ãŒãboundãèšè¿°ããpropertyChanged()ã¡ãœããã«ããããã£å€æŽæã®åŠçãèšè¿°ãã(å ·äœäŸã¯åŸè¿°)
- ããããã£ã¢ã¯ã»ã¹æã®åŠçãèªåã§è¡ãããå Žåã¯ããŠãŒã¶å®çŸ©ããããã£ãšããŠãããããã£æ¬æãéçºè èªãèšè¿°ããããšãå¯èœ
æç« äžã«åºãŠããããŒã«ã«ããŒã¯ãŒãã¯ããããŸã§ã®Javaã«ã¯ååšããªãã£ãææ³èŠçŽ ã ãããã¯Javaèšèªã®ããŒã¯ãŒã(classãstaticãªã©)ã§ã¯ãªããæ®æ®µã¯èå¥åãšããŠäœ¿çšã§ããããæèã«ãã£ãŠã¯ç¹å¥ãªæå³ãæã€ãšããããŒã¯ãŒãã ãããããææ³èŠçŽ ã®å°å ¥ã«ãããJ2SE 1.4ã®assertãJava SE 5ã®enumãªã©ã§çãããããªãããŒã¯ãŒãã®è¿œå ã«ãã£ãŠæ°ããã³ã³ãã€ã©ã§ãœãŒã¹ãã³ã³ãã€ã«ã§ããªããšãã£ãæ··ä¹±ãåé¿ãããšã¿ãããã
äžã®ã«ãŒã«ãå ·äœçã«ã³ãŒãã§è¡šããšä»¥äžã®ããã«ãªãã
ãªã¹ã1:ããããã£ã®æ§ã ãªå®£è𿹿³
public class MyBean {
public property String name1; // èªã¿æžãå¯èœãªããããã£
public property String name2 get; // èªã¿åãå°çš
public property String name3 set; // æžã蟌ã¿å°çš
public property String name4 bound; // ããŠã³ãããããã£
public property String name5 get set; // ææ³ãšã©ãŒ
public property String name6 get { return "hello"; }; // èªã¿åãå°çš
public property String name7 set(String name) { }; // æžã蟌ã¿å°çš
private boolean isReal;
// ãŠãŒã¶å®çŸ©ããããã£ã以äžã®å Žåã¯èªã¿æžãå¯èœ
public property String real
get {
return String.valueOf(isReal);
}
set(String real) {
isReal= String.decode(real);
};
}
çŸåšã®ãšãããpropertyããŒã¯ãŒãã§å®£èšãããããããã£ã¯ããã®å®äœãšãªããã£ãŒã«ããšããã®ãã£ãŒã«ããžã®ã¢ã¯ã»ããµã¡ãœãããã³ã³ãã€ã©ãåæã«çæãããšããå®è£ ãæ³å®ããŠããããã ããã®ãããã¢ã¯ã»ã¹ä¿®é£Ÿåãsynchronizedããããã¯volatileãstaticãšãã£ãããŒã¯ãŒããããããã£ã«ä»ãããšããããã®ã¯çæããããã£ãŒã«ãã«ããããã®ã¯ã¡ãœããã«ãšããããã«ãé©åãªç®æã«ãã®ããŒã¯ãŒããä»äžãããã®ãšåã广ãåŸãããã