以下快捷键均是基于win系统
一 . 抽取变量: ctrl alt v
常用于提取一大段判断为一个 boolean 时使用 或者是同一个对象的变量使用多次, 进行提取成同一个对象的时候使用
提取前
public static void main(String[] args) {
List<Product> products = asList(new Product(11, "product_code_1001", "name_1001")
, new Product(22, "product_code_1002", "name_1002")
, new Product(33, "product_code_1003", "name_1003")
, new Product(44, "product_code_1004", "name_1004")
, new Product(55, "product_code_1005", "name_1005")
);
if ("张三".equals(products.get(0).getName())&&"code001".equals(products.get(0).getProductCode())) {
}
}
提取后
public static void main(String[] args) {
List<Product> products = asList(new Product(11, "product_code_1001", "name_1001")
, new Product(22, "product_code_1002", "name_1002")
, new Product(33, "product_code_1003", "name_1003")
, new Product(44, "product_code_1004", "name_1004")
, new Product(55, "product_code_1005", "name_1005")
);
Product product123 = products.get(0);
boolean flag = "张三".equals(product123.getName()) && "code001".equals(product123.getProductCode());
if (flag) {
}
}
二. 本页面同时修改多个变量名称 ctrl shift alt j
使用场景: 上面提取出来的变量在多个地方使用到了, 现在感觉起的名字不太合适 , 需要更换一下, 就使用到了这个快捷键
public static void main(String[] args) {
List<Product> products = asList(new Product(11, "product_code_1001", "name_1001")
, new Product(22, "product_code_1002", "name_1002")
, new Product(33, "product_code_1003", "name_1003")
, new Product(44, "product_code_1004", "name_1004")
, new Product(55, "product_code_1005", "name_1005")
);
// TODO修改 product123 为 productObject
// 使用 ctrl shift alt j 即可
Product product123 = products.get(0);
boolean flag = "张三".equals(product123.getName()) && "code001".equals(product123.getProductCode());
if (flag) {
}
}
那么同时提醒我们, 在为变量取名字的时候需要尽量起到见词达意的效果, 修改的时候也会更加的特殊, 方便修改
三. 将代码块, 快速提取成一个 方法 ctrl alt m
这个真的是宝藏啊, 代码的书写流程就应该是主干不动, 不断的为主干添加新的枝丫分支, 实现效果, 变成一棵枝繁叶茂,主次清晰的一棵大树,完成需要的业务.
,同时也提示我们在写代码的时候要养成良好的编码风格
public static void main(String[] args) {
ProductTest();
}
private static void ProductTest() {
List<Product> products = asList(new Product(11, "product_code_1001", "name_1001")
, new Product(22, "product_code_1002", "name_1002")
, new Product(33, "product_code_1003", "name_1003")
, new Product(44, "product_code_1004", "name_1004")
, new Product(55, "product_code_1005", "name_1005")
);
Product product123 = products.get(0);
boolean flag = "张三".equals(product123.getName()) && "code001".equals(product123.getProductCode());
if (flag) {
}
}
四. 查看 当前方法或者类在哪被使用 ctrl b
当你反过来查哪里被用到了的时候会用到, 方向推导最后对外暴露的接口是哪个.