>片段 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);
}
是的,这确实意味着重复参数名称,但您无法绕过它。