3、 required = false 代表没有的情况下也会注入一个空的list
@Autowired(required = false)
public void setConfigurers(List<WebMvcConfig> configurers){
}
4、@JsonProperty 标记后使用json序列化会自动使用它设置的名字
@Data
public class ProductVO {
@JsonProperty("name")
private String categoryName;
@JsonProperty("type")
private Integer categoryType;
@JsonProperty("foods")
List<ProductInfoVO> productInfoVOList;
}
5、作为数据传递类,标记不为空的字段
@NotEmpty 用在集合类上面
@NotBlank 用在String上面
@NotNull 用在基本类型上
6、BeanUtils.copyProperties(orderDTO, orderMaster); 把orderDTO里相同的字段数据拷贝到orderMaster里
OrderMaster orderMaster = new OrderMaster();
orderDTO.setOrderId(KeyUtil.genUniqueKey());
BeanUtils.copyProperties(orderDTO, orderMaster);
orderMaster.setOrderAmount(new BigDecimal(5));
orderMaster.setOrderStatus(OrderStatusEnum.NEW.getCode());
orderMaster.setPayStatus(PayStatusEnum.WAIT.getCode());
7、alt + Arl + B 定位到接口实现类上 idea
8、拼接字符串 String url = String.format("http://%s:%s", serviceInstance.getHost(), serviceInstance.getPort()) + "/msg";
Runnable runnable = () -> {
System.out.println(decription);
};
9、arr转list
List<String> stringA = Arrays.asList("hello", "world","A");
String[] stringArray = {"hello","world","B"};
List<String> stringB = Arrays.asList(stringArray);
int[] intarray = {1, 2, 3, 4, 5};
//List<Integer> list = Arrays.asList(intarray); 编译通不过
List<int[]> list = Arrays.asList(intarray);
int[] intArray = {1, 2, 3, 4};
List<Integer> list = Ints.asList(intArray);
10、时间格式话YYYY和yyyy
/**
* YYYY 是 week-based-year
* 当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
SimpleDateFormat yyyy = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = yyyy.parse("2020-01-01");
System.out.println(date1);
SimpleDateFormat YYYY = new SimpleDateFormat("YYYY-MM-DD");
Date date2 = YYYY.parse("2020-01-01");
System.out.println(date2);
}
Class类的asSubClass()方法
其作用是将一个Class对象转换成为指定了泛型的Class对象,经常用于你不知道Class对象是什么类型的时候,例如Class.forName(str)他只能返回一个Class<?>,这时你需要将其转换为一个Class<? extends XXX>的对象(可能是添加到制定了泛型的集合里面)。
public static void main(String[] args) throws ClassNotFoundException {
String clazzName = args[2];
java2PbMessage(Class.forName(clazzName).asSubclass(Annotation.class));
}
public static void java2PbMessage(Class<? extends Annotation> protoClazz) {
}