Use o mecanismo de reflexão java para realizar a verificação do parâmetro da interface |
Cena de negócios:
Existem muitas interfaces para adicionar ou modificar operações que precisam registrar informações como o id e o nome do operador. Portanto, as informações do operador precisam ser verificadas antes da interface executar o código de negócio, pois os objetos passados são diferentes, mas todos possuem informações do operador, então o método de obtenção dinâmica das informações do objeto é usado para verificar os parâmetros (reflexão).
Para economizar muito código de verificação e duplicação, a reflexão é usada aqui.
[O código específico é o seguinte]:
public static void checkOperator(Object operator) throws Exception {
try{
//需要检查属性数组
String dataNames[] = {
"operatorId","operatorName"};
Class operatorObj = operator.getClass(); //实际对象
Field dataField = null; //属性
Object obj = null; //属性值
for(String dataName : dataNames){
dataField = operatorObj.getDeclaredField(dataName); //根据属性名获取属性
dataField.setAccessible(true); //开启属性访问
obj = dataField.get(operator); //获取属性值
if(ObjectUtils.isEmpty(obj)) //空判
throw new Exception();
}
}catch (NoSuchFieldException | IllegalAccessException e){
throw new NoSuchFieldException("此对象不存在操作人信息!");
} catch (Exception e){
throw new Exception("操作人信息为空!");
}
}
A reflexão consome mais recursos do sistema, por isso precisa ser usada com cuidado! (Aqui está apenas um exemplo de referência para uso simples de reflexão)