baolinliu442k 最近的时间轴更新
baolinliu442k

baolinliu442k

V2EX 第 550992 号会员,加入于 2021-07-15 23:09:44 +08:00
baolinliu442k 最近回复了
13 天前
回复了 GayGayUp 创建的主题 Java 有什么办法在 Java 实现插件化?
一个协议一个端口就行吧
荒野机器人
63 天前
回复了 yiroonli 创建的主题 问与答 做一个自己的“朋友圈”APP
挺不错的,有代码吗
有时候切到其他软件再切回来会卡
他都看到了不直接告诉你,让你沉淀
73 天前
回复了 qq309187341 创建的主题 Vue.js 请教一下 vue-router 中 addRoute 的问题
@walpurgis 一语点醒,我一直在搞动态加载,坑太多了,这样还简单点
74 天前
回复了 xuxueli 创建的主题 Java XXL-BOOT v1.0.0 | 快速开发平台
感觉现在很少用模板引擎了
可以套个模板方法


abstract class CheckableIReportHandler implements IReportHandler {
void handleWithCheck(AacmReportInsertBo aacmReportInsertBo) throws IllegalAccessException {
check(aacmReportInsertBo);
handle(aacmReportInsertBo);
}

abstract void check(AacmReportInsertBo aacmReportInsertBo) throws IllegalAccessException;
}


class QueryHandler extends CheckableIReportHandler {
@Override
public void handle(AacmReportInsertBo aacmReportInsertBo) {
System.out.println("handle " + aacmReportInsertBo.toString());
}

@Override
void check(AacmReportInsertBo aacmReportInsertBo) throws IllegalAccessException {
Field[] declaredFields = aacmReportInsertBo.getClass().getDeclaredFields();
for (Field declaredField : declaredFields) {
declaredField.setAccessible(true);
NotNull annotation = declaredField.getAnnotation(NotNull.class);
if (annotation != null) {
Class<?>[] groups = annotation.groups();

boolean flag = false;
for (Class<?> group : groups) {
if (group == this.getClass()) {
flag = true;
}
}

if(flag) {
if (declaredField.get(aacmReportInsertBo) == null) {
throw new IllegalArgumentException(declaredField.getName() + " is null");
}
}
}
}
}
}

public void save(AacmReportInsertBo aacmReportInsertBo) throws IllegalAccessException {
IReportHandler handler = ReportHandlerFactory.getReportHandlerService(ReportType.getType(aacmReportInsertBo.getType()));
// ReportHandlerErrorEnum.HANDLER_NULL_ERROR.isNull(handler);
if(handler instanceof CheckableIReportHandler) {
((CheckableIReportHandler)handler).handleWithCheck(aacmReportInsertBo);
}

}
太厉害啦
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   942 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 17:52 · PVG 01:52 · LAX 09:52 · JFK 12:52
Developed with CodeLauncher
♥ Do have faith in what you're doing.