gpt4 book ai didi

Java,方法的非固定参数

转载 作者:行者123 更新时间:2023-12-01 08:01:32 29 4
gpt4 key购买 nike

我是 Java 初学者。有一个方法:

public void method (int param1, int param2, int param3, int param4)

根据情况,我有时需要将参数传递给[param1]或[param2,param4],这取决于XML设置。但简单地传递 (0,desiredValue1,desiredValue2,0) 并不是那么简单 - 最好是传递一个关联数组来定义参数名称及其值。我听说这种工作是通过反射(reflection)来完成的。

最佳答案

不是反射。使用重载:

public void method (int param1)
public void method (int param2, int param4)

如果您确实需要 4 种以上最多 15 种组合,请考虑替代方案。

public void method (Integer param1, Integer param2, Integer param3, Integer param4)

这将允许您为缺少的参数传入 null。

map 是另一种选择。

更好地解析和解释 XML 可能会带来更简单的解决方案。

稍后

当然,您可以使用一种“标记”存储来存储参数。

class Parameter<T> {
String name;
T value; ...
Parameter( String name, T value ){...}
}

void method( Parameter<?>... parameters ){
for( Parameter<?> par: parameters ){
switch( par.getName() ){
case "param1": //...
//...
}
}
}

method( new Parameter<Integer>( "param1", 42 ),
new Parameter<Double>( "param3", 3.14 ) );

如果不需要通用性,只需在所有相关位置使用 int 即可。

关于Java,方法的非固定参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24984264/

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