Java 使用映射将单个键、值对传递给方法而不是直接键、值传递,可以吗?

Java 使用映射将单个键、值对传递给方法而不是直接键、值传递,可以吗?,java,maps,Java,Maps,考虑以下示例程序: function testMap(Map m) { // Do something with map here } function testDirect(String key, String value) { // Do something with values here } Map<String, Object> properties = Collections.singletonMap("key", "value"); // Calli

考虑以下示例程序:

function testMap(Map m) {
    // Do something with map here
}

function testDirect(String key, String value) {
    // Do something with values here
}

Map<String, Object> properties = Collections.singletonMap("key", "value");
// Calling the function with map
testMap(properties);

// Calling function with direct values
testDirect("key", "value");
函数测试映射(映射m){
//在这里用地图做些什么
}
函数testDirect(字符串键、字符串值){
//在这里做一些有价值的事情
}
映射属性=集合;
//用map调用函数
测试图(属性);
//用直接值调用函数
testDirect(“键”、“值”);

在这种情况下,您不需要地图

如果你想知道这些问题,我建议你进一步阅读

亲吻(保持简单,愚蠢)

和雅格尼(你不需要它)
简短回答:不!不可能!看在上帝的份上,不

长答覆:

简单是好的设计的关键目标,不需要做额外的工作不仅不好,而且瞄准了错误的目标


要了解简单的含义(不,简单并不容易),请观看。

为什么要这样做?这无疑会增加开销。除非映射可能包含许多这样的对,有些是可选的,并且在这里看不到增益。传递直接字符串键,字符串值会更好。为什么要承担导入
Map
的开销,这是什么意思?代码是否只需要一个键/对值?或者它也接受不止一个?如果你总是只需要一张地图,那么创建一张地图是不值得的。当然,这取决于你在每种方法中所做的工作。不,如果你想在我的团队中工作,那就不行。如果该方法只能处理一个条目,那么将其写入参数为
Map
会误导将要编写调用您的方法的代码的任何人以及将来维护您的代码的任何人。您必须以准确反映方法将要执行的操作的方式编写所有方法的签名。使用
Map
参数传递单个键和值并不能做到这一点。