Karte 最近的时间轴更新
Karte
ONLINE

Karte

V2EX 第 530643 号会员,加入于 2021-01-27 09:07:54 +08:00
今日活跃度排名 2412
Karte 最近回复了
1 小时 6 分钟前
回复了 JustW 创建的主题 分享发现 小白也能轻松玩转 Windows 🖥️
不分盘不就好了, 一个 C 盘用到底.
感觉用途不正.
21 小时 27 分钟前
回复了 Tickmao 创建的主题 分享创造 整了个简洁的 chrome 主题,万一有人喜欢呢
标签页分不清.
你先试试手机连接显示器是否正常, 如果正常则是 Windows 驱动问题. 如果不正常, 再试几个具有显示的设备, 如果都无法识别到显示器, 直接售后.
我觉得是弹出更新时用户选择问题, 更新弹窗会提示用户何时进行更新.
对于枚举的验证做法:
1. 硬代码, 通过 Assert 相关断言判断
2. 通过 @Min, @Max 设定枚举边界.
3. 通过实现 `ConstraintValidator` 对类进行校验.
4. 通过代理 + 反射的方式添加自定义处理注解, 然后通过定义 `spel` 表达式确认是否校验通过.
```java
@FieldValid(spel = "#p1.field != 0")
```

用硬代码虽然会略显丑陋, 但是在新增枚举时可以不用改动代码.
而 @Min, @Max 在枚举修改后需要同步修改, 如果没有相关注释说明会存在隐性 BUG.
使用 `ConstraintValidator` 相对比较好, 因为能够自定义实现校验逻辑. 但是验证范围只能为对应类, 如果不做继承的话
无法实现复用
代理 + 反射会有略微性能损耗, 而 `spel` 表达式需要额外学习, 且有点耗费性能 (通过反射获取数据). 在多参数时需要在编译时增加 `-parameters` 否则参数名无法写入, `spel` 就无法获取到对应的对象, 校验就失败了.
为什么这人提问有种高高在上的感觉?
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4787 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 04:04 · PVG 12:04 · LAX 21:04 · JFK 00:04
Developed with CodeLauncher
♥ Do have faith in what you're doing.