通過反射得到得到了 TalkingClock類中是有個靜態(tài)方法,并且返回值是私有域的beep。在核心技術(shù)卷一中說到有方法可以借助這個方法得到私有域,求解?附上類的代碼public?class?TalkingClock?{
????private?int?interval;
????private?boolean?beep;
????/**
?????*?Constructs?a?talking?clock
?????*?@param?interval?the?interval?between?messages?(in?milliseconds)
?????*?@param?beep?true?if?te?clock?should?beep
?????*/
????public?TalkingClock(int?interval,boolean?beep){
????????this.interval?=?interval;
????????this.beep?=?beep;
????}
????/**
?????*?Stars?the?clock
?????*/
????public?void?start(){
????????ActionListener?listener?=?this.new?TimePrinter();
????????Timer?t?=?new?Timer(interval,listener);
????????t.start();
????}
????public?class?TimePrinter?implements?ActionListener{???//?TimerPrinter?is?an?InnerClass
????????@Override
????????public?void?actionPerformed(ActionEvent?e)?{
????????????Date?now?=?new?Date();
????????????System.out.println("At?the?tone?,?the?time?is?"+?now);
????????????if(TalkingClock.this.beep)?Toolkit.getDefaultToolkit().beep();
????????}
????}
}
添加回答
舉報
0/150
提交
取消