优化这段代码 private void showBeanInfo() { if (param != null) { bean = tokenDao.getBeanWithId(String.valueOf(param)); if (bean != null) { if (bean.getName() != null) { binding.edtTokenName.setText(bean.getName()); } if (bean.getTokenType() != null) { binding.tvTokenType.setText(bean.getTokenType()); } if (bean.getParamType() != null) { binding.tvTokenPara.setText(bean.getParamType()); } if (bean.getTokenBeanNew() != null) { if (bean.getTokenBeanNew().getAlgorithm() != null) { binding.tvTokenAlg.setText(bean.getTokenBeanNew().getAlgorithm()); } if (bean.getTokenBeanNew().getDigits() != null) { binding.tvTokenLength.setText(bean.getTokenBeanNew().getDigits() + "位"); } if (bean.getTokenBeanNew().getTimeInterval() != null) { binding.tvTokenPeriod.setText(bean.getTokenBeanNew().getTimeInterval() + "秒"); } } } } }
时间: 2024-02-14 16:27:07 浏览: 24
优化后的代码如下:
```java
private void showBeanInfo() {
if (param != null) {
bean = tokenDao.getBeanWithId(String.valueOf(param));
if (bean != null) {
BeanNew tokenBeanNew = bean.getTokenBeanNew();
if (bean.getName() != null) {
binding.edtTokenName.setText(bean.getName());
}
if (bean.getTokenType() != null) {
binding.tvTokenType.setText(bean.getTokenType());
}
if (bean.getParamType() != null) {
binding.tvTokenPara.setText(bean.getParamType());
}
if (tokenBeanNew != null) {
if (tokenBeanNew.getAlgorithm() != null) {
binding.tvTokenAlg.setText(tokenBeanNew.getAlgorithm());
}
if (tokenBeanNew.getDigits() != null) {
binding.tvTokenLength.setText(tokenBeanNew.getDigits() + "位");
}
if (tokenBeanNew.getTimeInterval() != null) {
binding.tvTokenPeriod.setText(tokenBeanNew.getTimeInterval() + "秒");
}
}
}
}
}
```
优化的改动:
1. 将 `bean.getTokenBeanNew()` 的结果存储在一个局部变量 `tokenBeanNew` 中,以避免多次访问。
2. 将内部的 `if` 条件判断和对应的设置操作进行重新组织,减少了嵌套的层级。
3. 通过直接访问 `tokenBeanNew` 的属性,避免了多次调用 `bean.getTokenBeanNew()`。
4. 对于可能为 `null` 的属性,添加了对应的空指针判断。