V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  zifangsky  ›  全部回复第 8 页 / 共 21 页
回复总数  405
1 ... 4  5  6  7  8  9  10  11  12  13 ... 21  
2020 年 10 月 29 日
回复了 mocxe2vwww 创建的主题 Java Springboot 如何忽略 空的 json?
一个简单的办法是在 controller 中用反射校验每一个属性是否都为空,比如:

/**
* 检查是否所有属性都为空
* @author zifangsky
* @date 2020/10/29 11:05
* @since 1.0.0
* @param element 待处理对象
* @return 返回 true 表示对象的所有参数都为空
*/
public static <K> boolean checkIfAllFieldsEmpty(K element){
if(element == null){
return true;
}

Class<?> clazz = element.getClass();

//1. 获取当前类及父类的所有属性
List<Field> fieldList = new ArrayList<>();
while (clazz != null){
Field[] declaredFields = clazz.getDeclaredFields();
fieldList.addAll(Arrays.asList(declaredFields));

clazz = clazz.getSuperclass();
}

//2. 统一处理所有符合条件的属性
for (Field field : fieldList) {
//更改权限
field.setAccessible(true);

try {
//对于字符串类型的属性除了要判断是否为空,还要再判断一次是否为空字符串
if(field.getType().isAssignableFrom(String.class)){
String fValue = (String) field.get(element);
if(fValue != null && !"".equals(fValue.trim())){
return false;
}
}else{
Object fValue = field.get(element);
if(fValue != null){
return false;
}
}
}catch (Exception e){
//ignore
}
}

return true;
}

public static void main(String[] args) {
UserForm form1 = new UserForm("张三", "password", 18);
UserForm form2 = new UserForm("", null, null);

System.out.println("检查结果是:" + checkIfAllFieldsEmpty(form1));
System.out.println("检查结果是:" + checkIfAllFieldsEmpty(form2));
}
2020 年 10 月 27 日
回复了 Windsooon 创建的主题 程序员 收集了大厂面经出现的高频题
感谢,战略性收藏
2020 年 10 月 27 日
回复了 awesomes 创建的主题 电影 “水”剧推荐
地下交通站 +1
支持一下
2020 年 10 月 12 日
回复了 NoGolang 创建的主题 Java Java 从开始到放弃 求大佬推荐一本书
如果只是入门,可以看《 JAVA 开发实战经典》和《 Java 核心技术》这两本,有一定基础后推荐看《 Java 编程的逻辑》这本;
了解 Java8 的新特性,可以看《 Java8 实战》这本;
学习并发和 JVM,可以看《实战 Java 高并发程序设计》、《实战 Java 虚拟机》、《深入理解 Java 虚拟机》;
学习 Spring 框架,可以看《 Spring 实战》、《 Spring 5 企业级开发实战》、《 Spring Cloud 微服务架构进阶》。
2020 年 9 月 7 日
回复了 jdhao 创建的主题 程序员 这个大专栏网站是爬虫网站?窃取别人的文章
18L 可真理直气壮,呵呵
2020 年 7 月 16 日
回复了 coocier 创建的主题 程序员 如果我多一点诚意,你是否愿意加入我
连个饼都不愿意画,没看出来有什么诚意。另外,“愿意加入的人还是有不少”,怕不都是为了找项目练手的初学者吧 https://i.v2ex.co/504J5BO2.png
当然,LFU 算法我也实现了,你看上一层目录就可以看到。
你可以再参考下我实现的 LRU 算法,自我感觉还是比较完善的,不过我是用的 Java 实现: https://gitee.com/zifangsky/DataStructure/tree/master/src/main/java/cn/zifangsky/hashtable/lru
2020 年 7 月 12 日
回复了 qq1079945484 创建的主题 程序员 数据存在树形的关系时存数据库好还是哪里好
可以试试图数据库——Neo4j,用起来挺简单的
“删除那些越旧读取次数越少的数据”?到底是删除最旧的数据( LRU )还是删除访问次数最少的数据( LFU )?
2020 年 7 月 10 日
回复了 cat404 创建的主题 程序员 大佬们来解答一下这个面试题(语言不限)
有个地方逻辑有点问题,我改了一下:

//如果平局,则将其从存活数组移除,本次战斗结束
else if(lastItem == Math.abs(arr[i])){
survivors.remove(survivors.size() - 1);
rightWin = false;
break;
}
2020 年 7 月 10 日
回复了 cat404 创建的主题 程序员 大佬们来解答一下这个面试题(语言不限)
我看了下,10L 兄弟的代码在逻辑上有点不太完善,你可以试试我这种写法(算法逻辑请参考注释部分):
https://i.loli.net/2020/07/10/T94Rrce2nkJhwHV.png
2020 年 7 月 8 日
回复了 linxiaoziruo 创建的主题 Java 关于出栈的疑惑
0 iconst_1
1 istore_1
2 iconst_2
3 istore_2
4 iconst_3
5 istore_3
6 iload_1
7 iload_2
8 imul
9 istore 4
11 iload_3
12 iload 4
14 imul
15 istore 5
17 return

执行完第 5 行之后,此时局部变量表中有:
0 this
1 1
2 2
3 3

执行第 6 7 行,本质上就是将局部变量表中的 1 和 2 先后取出来放在操作数栈中,然后第 8 行的 imul 指令就是从操作数栈中弹出两个元素做乘法,并将结果再压回操作数栈。

执行第 9 行,这里的 istore 指令的意思是从操作数栈中出栈一个元素存到局部变量表中的第 4 个位置。后面指令的意思差不多,就不做过多解释了。

结论:以上代码的乘法计算过程不是直接从本地线程栈中出栈做计算,而是①从局部变量表中取数据压到操作数栈,然后②从操作数栈中弹出元素做计算并将结果再压回操作数栈,最后③如果有赋值操作就将其再存到局部变量表中的对应位置。
一本正经的胡说八道
2020 年 7 月 1 日
回复了 TIGERB 创建的主题 程序员 你想知道的优惠券业务, SkrShop 告诉你
战略性 mark,后面没准有用
感觉还不错,战略性 mark
1 ... 4  5  6  7  8  9  10  11  12  13 ... 21  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   947 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 20:36 · PVG 04:36 · LAX 13:36 · JFK 16:36
♥ Do have faith in what you're doing.