日期:2014-05-20  浏览次数:20674 次

java高手来帮忙!!关于“({ });”形式
关于java中的一种书写格式!!我经常看到有一种格式——在一个方法跟的参数括号里面,写了很到一团,一般最后都会有这样的组合“ }); ”,可能数的不清楚,下面举个例子,是设置HyperlinkListener代码的,请给我讲讲这种结构,是编程习惯么,有等价书写形式么?高手求解,本人java初学者,请别拍砖,谢了~~

jEditorPane.addHyperlinkListener(new HyperlinkListener() {

  public void hyperlinkUpdate(HyperlinkEvent e) {
  if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
  try {
  。。。。。。。。。} 
  catch (Exception ex) {
  。。。。。。。。。。
  }
  }
  }
 });

------解决方案--------------------
是匿名内部类
------解决方案--------------------
匿名类,一种习惯,改成这样也行
class a implements HyperlinkListener {
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
try {}
catch (Exception ex) {}
}
}
}
a ainstance = new a();
jEditorPane.addHyperlinkListener(ainstance);
------解决方案--------------------
写this(指当前类)的话,当前类必须实现HyperlinkListener接口而且还要重写接口函数
也即把下面这个函数放外边
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
try {}
catch (Exception ex) {}
}
}
和jEditorPane.addHyperlinkListener(this);都放在this类中
------解决方案--------------------
内部类的一种写法!
------解决方案--------------------
匿名类的写法,很常见,一般事件的监听都采用匿名类写,因为方便、简洁,习惯了就会慢慢的喜欢上它。
------解决方案--------------------
匿名内部类继承某个父类或实现某个接口,可以重写父类的方法。