簡體   English   中英

定義在地圖中采用參數的方法

[英]Defining a method which takes a parameter in a map

我有一個用例,其中我要在cloudformation堆棧中創建多個AWS資源,例如S3存儲桶,SNS主題等。 所有這些都是極簡主義的資源,即S3存儲桶中將沒有任何對象。

我有一個工作流程,我的代碼將選擇一個隨機的resourceType,然后創建資源。 現在,我正在嘗試構建一個通用類/方法,該類/方法將刪除這些創建的資源。

我將資源存儲為json字段,這為我提供了有關resourceType的詳細信息

{
  "AWSService": "S3",
  "AWSResourceType": "Bucket",
  "ResourceAttributes" : {
      "BucketName": "MyBucket"
  }
}

為了進行清理,我在想我有一個映射,其鍵為AWSService,其值是可運行的,它將調用適當的serviceType來刪除資源。

但是,可運行對象不能接受參數,因此我無法傳遞要刪除的resourceName / Arn,以便API知道要刪除的資源。

有沒有一種方法可以將這些信息存儲為映射,並且仍將參數傳遞給正在執行的方法?

不確定我是否完全了解您正在做的所有工作而沒有看到一些代碼,但是我認為這可能會使您朝正確的方向前進。

您可以在新的通用類中實現Runnable接口: http : //leo.ugr.es/elvira/devel/Tutorial/Java/essential/threads/clock.html

因此,您可以做的是創建一個通用類,該類實現可運行的接口,並具有可以接收所需變量的構造函數或getters / setters等。

類似於以下內容:

public class ResourceCleanup implements Runnable {
    private String arn;

    @Override
    public void run() {
        // do the cleanup with the arn
    }

    public ResourceCleanup(String arn) {
        this.arn = arn;
    }
    // etc.
}

或者,您可以傳入映射而不是字符串,並根據需要使用Java泛型等。 希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM