gpt4 book ai didi

java - 能否在 Java 中使用类似于关键字 args for python 的概念来最小化访问器方法的数量?

转载 作者:太空狗 更新时间:2023-10-29 21:49:49 25 4
gpt4 key购买 nike

我最近了解到,在 Python 3 中,为了最小化类的访问器方法的数量,您可以使用字典来基本上只有一组访问器方法,如下所示:

def __init__(self, **kwargs):
self.properties = kwargs

def get_properties(self):
return self.properties

def get_property(self, key):
return self.properties.get(key, None)

这看起来真的很有用,我想在 Java 中应用类似的东西。我一直在处理可能具有多个属性的应用程序,创建和跟踪所有访问器方法可能会很痛苦。是否有类似的策略可用于 Java?

最佳答案

不,Java 中没有 kwargs。相反,您可以使用 java varargs 来实现与您的功能类似的功能。将它们保存为 java 属性。

你可以这样做:

useKwargs("param1=value1","param2=value2");

示例代码:

public void useKwargs(String... parameters) {

Properties properties = new Properties();

for (String param : parameters) {
String[] pair = parseKeyValue(param);

if (pair != null) {
properties.setProperty(pair[0], pair[1]);
}

}

doSomething(properties);
}

public void doSomething(Properties properties) {
/**
* Do something using using parameters specified in the properties
*/

}

private static String[] parseKeyValue(String token) {
if (token == null || token.equals("")) {
return null;
}

token = token.trim();

int index = token.indexOf("=");

if (index == -1) {
return new String[] { token.trim(), "" };
} else {
return new String[] { token.substring(0, index).trim(),
token.substring(index + 1).trim() };
}

}

关于java - 能否在 Java 中使用类似于关键字 args for python 的概念来最小化访问器方法的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29908049/

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