V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  baolinliu442k  ›  全部回复第 1 页 / 共 3 页
回复总数  44
1  2  3  
可以套个模板方法


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);
}

}
太厉害啦
190 天前
回复了 lurui45 创建的主题 生活 关于日常药店买药的一些想法
在上海路边小药店感冒,随随便要一百多
190 天前
回复了 zhuoyue100 创建的主题 Vue.js 新手 vue3 样式问题
用 tailwind 不考虑这些问题了 😃
lumia
306 天前
回复了 baolinliu442k 创建的主题 Java 实际项目中如何使用线程池
@hdfg159 这么爽的嘛
306 天前
回复了 baolinliu442k 创建的主题 Java 实际项目中如何使用线程池
@TuringHero 感觉 java 已经很先进了, 然而项目还是 java8hah
306 天前
回复了 baolinliu442k 创建的主题 Java 实际项目中如何使用线程池
@imokkkk 谢谢回答,感谢贴出代码, 很有参考意义
306 天前
回复了 baolinliu442k 创建的主题 Java 实际项目中如何使用线程池
@Seulgi 确实需要慎用, 目前公司做的 toB 业务,一个大接口响应 10s 都不要优化
306 天前
回复了 baolinliu442k 创建的主题 Java 实际项目中如何使用线程池
@nothingistrue 大佬,我茅厕顿开
306 天前
回复了 baolinliu442k 创建的主题 Java 实际项目中如何使用线程池
@Aresxue 谢谢回答, 我还有个疑问如果一个项目中定义了多个线程池,例如 2 个线程池,核心线程数都是 5 ,机器 cpu 核数是 5 , 那么可以同时执行 10 个任务吗? 线程池定义多了是不是作用不大了
306 天前
回复了 baolinliu442k 创建的主题 Java 实际项目中如何使用线程池
@oneronan 感谢回答
306 天前
回复了 baolinliu442k 创建的主题 Java 实际项目中如何使用线程池
@CodeCodeStudy 嗯嗯,可是项目中定义线程池还是蛮普遍的
306 天前
回复了 baolinliu442k 创建的主题 Java 实际项目中如何使用线程池
@kuituosi 感谢回答,就是感觉 Node 单线程可以很方便进行异步挺好的,而且我也不知道啥算 CPU 密集型
306 天前
回复了 baolinliu442k 创建的主题 Java 实际项目中如何使用线程池
@joyhub2140 就是不知道用啥感觉
306 天前
回复了 baolinliu442k 创建的主题 Java 实际项目中如何使用线程池
@blankmiss 哈哈不知道
306 天前
回复了 baolinliu442k 创建的主题 Java 实际项目中如何使用线程池
@chendy 嗯嗯,公司的项目我还不敢随便配
306 天前
回复了 baolinliu442k 创建的主题 Java 实际项目中如何使用线程池
@qhkobold 老项目 java8,我自己项目的话,我就直接 new Thread().start 了 哈哈
306 天前
回复了 baolinliu442k 创建的主题 Java 实际项目中如何使用线程池
@ffw5b7 这篇之前也看过
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1026 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 23:05 · PVG 07:05 · LAX 15:05 · JFK 18:05
Developed with CodeLauncher
♥ Do have faith in what you're doing.