首页 > 编程语言 >java tricky

java tricky

时间:2023-06-25 17:34:23浏览次数:30  
标签:tricky 返回 java stream ... Date new null

1、根据枚举的name获取枚举类:

private static SmsProviderType fromName(String spName) {
  return Stream.of(SmsProviderType.values()).filter(sp -> StringUtils.equals(sp.name(), spName)).findFirst().orElse(null);
}

2、字符串转成int(注意给默认值):NumberUtils.toInt

3、collect(Collectors.joining()) 表示把所有字符串连接起来

4、把null转成empty:nullToEmpty()方法

5、joiner.join可以用分隔符把元素连接在一起

6、实体类转为Map形式:
obj -> jsonStr -> map

7、Optional

Optional.ofNullable(...) 入参为null则返回null,否则返回入参
ofNullable(...).ifPresent() 如果ofNullable的结果不是空,则调用ifPresent
Optional.orElse(value) 如果optional保存的是null,返回value。如果保存的不是null,返回option自己的值
Optional.orElseGet(...) 和orElse一样,只是入参是对象
一般从stream中选出个体,就要调用stream的findFirst()方法,然后orElse
firstNonEmpty(T... values)方法,第一个入参不为空则返回 为空则判断后面的 以此类推
isPresent() 返回boolean,如果值存在则方法会返回true,否则返回 false
anyMatch(): stream中任何一个元素满足即返回true
allMatch(): stream中所有元素都满足即返回true
.findAny().isPresent() 和 anyMatch的含义一样

8、forEach和forEachOrder区别:两者完成的功能类似,主要区别在并行处理上,forEachOrdered()将始终按照流(stream)中元素的遇到顺序执行给定的操作,而forEach()方法是不确定的。

9、sorted中可以把Comparator.comparing()的结果作为入参。Comparator.comparing().thenComparing() 可以定义多个排序规则

10、Exception: e.getClass().getSimpleName()可以拿到具体异常的类型

11、Sets.difference(set1, set2) 可以获取元素:在set1中存在但是在set2中不存在。Set的retainAll方法:求交集
12、@RestController注解相当于@ResponseBody + @Controller

13、idea或eclipse的jvm arguments加入 -Dfuck.abc="1234" 在代码中System.getProperty("fuck.abc")可以获取这个值。-D是用来在启动java程序时设置系统属性的
接口中的default方法会被实现类直接继承

14、Random r = new Random() nextInt(bound) 会生成0到bound的值 每次不一样
Random r = new Random(100) 指定种子后,nextInt(bound) 会生成0到bound的值 每次都一样

15、去掉字符串指定的前缀:StringUtils.removeStart(fullNumber, "+")

16、日期转换

localDatetime和毫秒数转化
LocalDateTime end = LocalDateTime.of(2020, 3, 3, 18, 38, 00);
System.out.println(end.toInstant(ZoneOffset.of("+8")).toEpochMilli());

//把yyyy-MM-dd HH:mm:ss转化为Date类型
DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date myDate2 = dateFormat2.parse("2020-04-25 05:20:01");
System.out.println(myDate2);
System.out.println(myDate2.getTime());

//把Date类型转化为yyyyMMdd字符串

SimpleDateFormat resultFormat = new SimpleDateFormat("yyyyMMdd");
Date date = new Date();
String result = resultFormat.format(date);

17、编码

UrlEncode会把/变为%2f

18、文件转为byte数组,使用IOUtils

String photoPath = "abc";
File photo = new File(photoPath);
byte[] bytes = FileUtils.readFileToByteArray(photo);

 

标签:tricky,返回,java,stream,...,Date,new,null
From: https://www.cnblogs.com/MarkLeeBYR/p/17503525.html

相关文章

  • JAVA标签
    breakcontinue标签:```java标签(label)是在编程语言中用于标识代码的位置的符号。它通常与跳转语句(如break和continue)结合使用,用于控制程序的流程。在Java中,标签以标识符的形式出现,后面跟着一个冒号(:)。标签可以与循环语句(如for、while、do-while)和条件语句(如if、switch)一起......
  • java 中在图像上绘制文字
    privatevoidprintText(BufferedImageimage,floatx,floaty,Stringtext){Graphics2Dg=image.createGraphics();g.setColor(Color.RED);g.setFont(newFont("Arial",Font.BOLD,30));FontMetricsfm=g.getFontMet......
  • 关于Java中ArrayList类的toArray方法详解
    先上源码:publicObject[]toArray(){returnArrays.copyOf(elementData,size);}可以看到ArrayList类的toArray()方法调用了Arrays.copyOf(elementData,size)(其中的elementData是ArrayList类中用来存储对象的数组,size是数组大小),接下来进入其内部:publicsta......
  • 【淘宝商品详情数据】api接口获得宝贝详情数据、优惠价格数据Java调用示例
    淘宝详情API接口的作用是获取淘宝平台上某个商品的详细信息,包括商品标题、价格、图片、规格、参数、店铺信息等。开发者可以通过该接口获取到商品的原始数据,方便进行数据分析、价格比较、爬取等操作。通过该接口获取到的商品详情数据可以结合其他数据进行深度挖掘,例如可以将商品数......
  • 【Java】修改生成的PDF的表格中文字的字体
    首先导入依赖<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.10</version></dependency>使用form.setFieldProperty("${表格名字}",&......
  • 使用java中的Calendar遇到的时区问题
    项目中有一个增加1小时的工具函数结果今天测试出现了一个问题原因是1986年的9月13号到14号之间会有一个时区的转换需要程序特殊处理下这是原函数的结果SatSep1322:00:00CDT1986SatSep1323:00:00CDT1986SatSep1323:00:00CST1986SunSep1400:0......
  • Java学习之Mysql基础问题整理
    Mysql常见存储引擎命令:SHOWENGINES; Mysql版本5.5以后默认引擎是InnoDB,5.5版本以前的是MyISAMInnoDB和MyISAM的区别1、InnoDB支持事务,MyISAM不支持。对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个......
  • JAVA SE基础《二》---- JAVA语法
    目录JAVA基础语法注释字面量变量变量使用注意事项关键字、标识符 一.注释详解什么是注释?注释是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便理解程序的。注释有哪些单行注释 多行注释 文档注释:文档注释的内容是可以提取到一个程序说......
  • 迟来的秋招面经,17家公司,Java岗位
    一位朋友秋招面试了17家公司(都是中小公司或者银行),Java后端岗。下面是他的个人情况、求职经验已经这17家公司的面经。个人情况和求职经验其实现在是挺后悔大学没有好好的学习的,因为基本上都会提到一些成绩相关的事情,每次填成绩都只能填个50%(实际上更低),并且还有挂科,没有奖学金,没......
  • java调用cmd命令
    importlombok.extern.slf4j.Slf4j;importorg.apache.commons.io.IOUtils;importjava.io.InputStream;importjava.nio.charset.StandardCharsets;importjava.util.AbstractMap;importjava.util.List;importjava.util.Map;importjava.util.concurrent.Completab......