mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-11-05 08:57:12 +08:00
优化:优化成员变量相关注释及部分操作写法
成员变量有时候会被称为 Field 有时候会被称为 Property,它们的区别如下:
1.Field:Field 是 Java 反射中描述类的属性信息的类。成员变量(Instance Variable)就是定义的字段(Field),例如 private String name;。Field 可以获取当前对象的成员变量的类型,对成员变量重新设值等。使用 Field 可以直接操作类的属性,不需要通过 getter 和 setter 方法,但是需要了解反射机制。
2.Property:Property 是成员变量的 getter 和 setter 方法。例如,public String getName() { return name; } 和 public void setName(String name) { this.name = name; } 分别是获取和设置 MyField 类中的实例变量 name 的 getter 和 setter 方法。使用 Property 可以在类的外部访问和修改类的属性,但是需要注意访问权限和数据类型的正确性。
综上所述,Field 和 Property 都可以用来表示 Java 类中的成员变量,选择哪种方式取决于具体的应用场景和需求。如果需要直接操作类的属性,可以使用 Field;如果需要在类的外部访问和修改类的属性,可以使用 Property。
个人理解:从 MyBatis 的映射角度来说,column 表示数据库表列/字段,property 表示 Java 对象属性/字段,所以此前在涉及到 MyBatis 操作时,尽可能多的用了 Property 而不是 Field。但除了 MyBatis 之外还有很多地方也需要用到成员变量,与其纠结 Field 还是 Property,那就用 Field,简单粗暴一点。
This commit is contained in:
@@ -18,9 +18,7 @@ package top.charles7c.cnadmin.common.base;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
@@ -42,6 +40,7 @@ import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.lang.Opt;
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.lang.tree.TreeNodeConfig;
|
||||
import cn.hutool.core.util.ClassUtil;
|
||||
import cn.hutool.core.util.ReflectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
@@ -127,11 +126,9 @@ public abstract class BaseServiceImpl<M extends BaseMapper<T>, T, V, D, Q, C ext
|
||||
tree.setName(ReflectUtil.invoke(node, StrUtil.genGetter(treeField.nameKey())));
|
||||
tree.setWeight(ReflectUtil.invoke(node, StrUtil.genGetter(treeField.weightKey())));
|
||||
if (!isSimple) {
|
||||
Field[] fieldArr = ReflectUtils.getNonStaticFields(voClass);
|
||||
List<Field> fieldList = Arrays.stream(fieldArr)
|
||||
.filter(f -> !StrUtil.containsAnyIgnoreCase(f.getName(), treeField.value(), treeField.parentIdKey(),
|
||||
treeField.nameKey(), treeField.weightKey(), treeField.childrenKey()))
|
||||
.collect(Collectors.toList());
|
||||
List<Field> fieldList = ReflectUtils.getNonStaticFields(voClass);
|
||||
fieldList.removeIf(f -> StrUtil.containsAnyIgnoreCase(f.getName(), treeField.value(),
|
||||
treeField.parentIdKey(), treeField.nameKey(), treeField.weightKey(), treeField.childrenKey()));
|
||||
fieldList
|
||||
.forEach(f -> tree.putExtra(f.getName(), ReflectUtil.invoke(node, StrUtil.genGetter(f.getName()))));
|
||||
}
|
||||
@@ -220,7 +217,7 @@ public abstract class BaseServiceImpl<M extends BaseMapper<T>, T, V, D, Q, C ext
|
||||
*/
|
||||
protected T getById(Object id) {
|
||||
T entity = baseMapper.selectById(Convert.toStr(id));
|
||||
CheckUtils.throwIfNull(entity, String.format("ID为 [%s] 的记录已不存在", id));
|
||||
CheckUtils.throwIfNull(entity, ClassUtil.getClassName(entityClass, true), "ID", id);
|
||||
return entity;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user