第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

load 方法最后在 Java 中調(diào)用另一個(gè)方法

load 方法最后在 Java 中調(diào)用另一個(gè)方法

浮云間 2022-11-30 13:51:17
我有一個(gè)Task具有兩種方法的抽象類execute(),finish()如下所示:abstract class Task {  abstract void execute();  private void finish() {    // Do something...  }}如何確保execute()子類中的重載方法Task 隱式調(diào)用finish()為最后一條語句?
查看完整描述

2 回答

?
qq_遁去的一_1

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊

我不相信有任何方法可以“強(qiáng)制”子類調(diào)用方法,但您可以嘗試某種模板方法方法:


abstract class Foo {

  protected abstract void bar();     // <--- Note protected so only visible to this and sub-classes


  private void qux() {

    // Do something...

  }


  // This is the `public` template API, you might want this to be final

  public final void method() {

    bar();

    qux();

  }

}

publicmethod是入口點(diǎn),調(diào)用抽象方法bar然后調(diào)用私有qux方法,這意味著任何子類都遵循模板模式。然而,這當(dāng)然不是靈丹妙藥——一個(gè)子類可以簡單地忽略 public method。


查看完整回答
反對 回復(fù) 2022-11-30
?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

您可以創(chuàng)建一個(gè)ExecutorCloseable實(shí)現(xiàn)該[AutoCloseable]接口的類,例如:


public class ExecutorCloseable extends Foo implements AutoCloseable 

{

  @Override

  public void execute() 

  {

    // ...

  }


  @Override           //this one comes from AutoCloseable

  public void close() //<--will be called after execute is finished

  {

     super.finish();

  }

 }

你可以這樣稱呼它(愚蠢的main()例子):


 public static void main(String[] args) 

 {

     try (ExecutorCloseable ec = new ExecutorCloseable ()) 

     {


        ec.execute();


     } catch(Exception e){

        //...

     } finally {

       //...

    }

 }

希望它有意義,我真的不知道你如何調(diào)用這些方法,也不知道你如何創(chuàng)建類。但是,嘿,這是一個(gè)嘗試:)


不過,要使其起作用,finish()方法Foo應(yīng)該是protectedor public(推薦第一個(gè))。


查看完整回答
反對 回復(fù) 2022-11-30
  • 2 回答
  • 0 關(guān)注
  • 110 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號