Karte 最近的时间轴更新
Karte

Karte

V2EX 第 530643 号会员,加入于 2021-01-27 09:07:54 +08:00
今日活跃度排名 12850
Karte 最近回复了
10 小时 43 分钟前
回复了 gsy20050126 创建的主题 Apple 新 iPad pro 记得买 1TB 以上的
直接买个本子不香吗
1 天前
回复了 JustW 创建的主题 分享发现 小白也能轻松玩转 Windows 🖥️
不分盘不就好了, 一个 C 盘用到底.
感觉用途不正.
标签页分不清.
你先试试手机连接显示器是否正常, 如果正常则是 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   ·   我们的愿景   ·   实用小工具   ·   3449 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 12:08 · PVG 20:08 · LAX 05:08 · JFK 08:08
Developed with CodeLauncher
♥ Do have faith in what you're doing.