将当前执行函数的参数动态传递给其他函数



>片段 1

public static String formatDateToString(BigDecimal param1, Date param2, String param3) {
Utils.checkNullOrEmpty(?????); //I want the function params here dynamically
}

片段 2

public static boolean checkNullOrEmpty(Object...values){
for(Object value: values){
if(value==null){
return true;
}
if(value instanceof String){
String val = (String) value;
if(val.isEmpty()){
return true;
}
}
}
return false;
}   

如何动态获取当前函数的参数。(参考片段1(

这对于具有许多参数的函数很有帮助,以避免单独的 null 检查。

我能够使用以下方法获取参数类型

new Object(){}.getClass().getEnclosingMethod().getParameterTypes()

缺点是它会创建一个新对象,并且只给我类型而不是值。

Java没有JavaScript的arguments对象的等价物,反射不提供此信息。但是由于参数列表决定了您将收到哪些参数,因此只需直接使用这些参数:

public static String formatDateToString(BigDecimal param1, Date param2, String param3) {
Utils.checkNullOrEmpty(param1, param2, param3);
}

是的,这确实意味着重复参数名称,但您无法绕过它。

相关内容

最新更新