BaseEntity类
@Data
public class BaseEntity {
@TableField(value = "create_user")
@ApiModelProperty(value = "创建人")
private Long createUser;
@TableField(value = "update_user")
@ApiModelProperty(value = "更新人")
private Long updateUser;
@TableField(value = "create_time")
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
@TableField(value = "update_time")
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
}
Dict类
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "sys_dict")
public class Dict extends BaseEntity {
// 设置主键
@TableId
@TableField(value = "dict_id")
private Long dictId;
// 名称
@TableField(value = "name")
private String name;
// 描述
@TableField(value = "description")
private String description;
// 状态
@TableField(value = "status")
private Integer status;
}
自定义切面类
if(entity instanceof BaseEntity){
try{
Method setCreateTime = entity.getClass().getDeclaredMethod("setCreateTime", LocalDateTime.class);
}catch (Exception e){
log.error("获取实体类的方法异常:{}",e);
}
log.info("BaseEntity子类");
}else{
log.error("不是BaseEntity子类");
}
提示“java.lang.NoSuchMethodException: com.*.Dict.setCreateTime(java.time.LocalDateTime)”
错误,在自定义切面类里打印entity.toString的话也只有 Dict类的成员属性
你这里两个问题
1.你这里都
ntity instanceof BaseEntity
了,直接用不就行了,还反射啥2.你的反射用错了
getDeclaredMethod
方法只返回当前类中命中的方法,不包含继承关系的,你应该使用