gpt4 book ai didi

java - 定义一个采用映射中参数的方法

转载 作者:太空宇宙 更新时间:2023-11-04 11:01:36 25 4
gpt4 key购买 nike

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

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

我将资源存储为 json 字段,它为我提供有关资源类型的详细信息

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

对于清理,我认为我有一个映射,其键为 AWSService,其值是可运行的,它将调用适当的 serviceType 来删除资源。

但是,runnables 无法接受参数,因此我无法传入要删除的资源名称/Arn,以便 API 知道要删除哪个资源。

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

最佳答案

如果没有看到一些代码,我不确定我是否完全理解您正在做的事情的所有含义,但我认为这可能会让您朝着正确的方向前进。

您可以在新的泛型类中实现 Runnable 接口(interface): http://leo.ugr.es/elvira/devel/Tutorial/Java/essential/threads/clock.html

因此,您可以做的是创建一个实现可运行接口(interface)的泛型类,并且具有可以接受您需要的变量的构造函数,或者 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 泛型等。希望这有帮助!

关于java - 定义一个采用映射中参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46840557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com