Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 定义在映射中接受参数的方法_Java_Amazon Web Services - Fatal编程技术网

Java 定义在映射中接受参数的方法

Java 定义在映射中接受参数的方法,java,amazon-web-services,Java,Amazon Web Services,我有一个用例,我在一个cloudformation堆栈中创建多个AWS资源,例如S3存储桶、SNS主题等。所有这些都是简单的资源,即S3存储桶中没有任何对象 我已经设置了一个工作流,在这里我的代码将选择一个随机资源类型,然后创建资源。现在,我正在尝试构建一个通用类/方法,该类/方法将删除这些创建的资源 我将资源存储为json字段,这些字段提供有关resourceType的详细信息 { "AWSService": "S3", "AWSResourceType": "Bucket", "

我有一个用例,我在一个cloudformation堆栈中创建多个AWS资源,例如S3存储桶、SNS主题等。所有这些都是简单的资源,即S3存储桶中没有任何对象

我已经设置了一个工作流,在这里我的代码将选择一个随机资源类型,然后创建资源。现在,我正在尝试构建一个通用类/方法,该类/方法将删除这些创建的资源

我将资源存储为json字段,这些字段提供有关resourceType的详细信息

{
  "AWSService": "S3",
  "AWSResourceType": "Bucket",
  "ResourceAttributes" : {
      "BucketName": "MyBucket"
  }
}
对于清理,我认为我有一个映射,其中key作为AWSService,值为runnable,它将调用适当的serviceType来删除资源

但是,runnables不能接受参数,因此我不能传入要删除的resourceName/Arn,以便API知道要删除的资源


是否有一种方法可以将此信息存储为映射,并且仍然将参数传递给正在执行的方法

在没有看到一些代码的情况下,我不确定自己是否完全理解了您所做工作的所有含义,但我认为这可能会让您朝着正确的方向前进

您可以在新的泛型类中实现Runnable接口:

因此,您可以创建一个实现runnable接口的泛型类,该类要么有一个可以接受所需变量的构造函数,要么有getter/setter,等等

大致如下:

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泛型等。希望这有帮助

在没有看到一些代码的情况下,我不确定自己是否完全理解了您所做工作的所有含义,但我认为这可能会让您朝着正确的方向前进

您可以在新的泛型类中实现Runnable接口:

因此,您可以创建一个实现runnable接口的泛型类,该类要么有一个可以接受所需变量的构造函数,要么有getter/setter,等等

大致如下:

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泛型等。希望这有帮助