文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Intellij IDEA使用技巧,可以让你的代码飞起来!

2024-11-30 18:15

关注

2 基本使用

IDEA自带很多常用的动态模板,在Java代码中输入fori,回车会出现:

for (int i = 0; i < ; i++) {

}

按 T​ab 跳入每个空白并手动填写值。

更多 IDEA 操作如下:

public class Example {
// geti 生成单例语句
public static Example getInstance() {
return new Example();
}

// prsf 生成 private static final
private static final ...;

// psf 生成 public static final
public static final ...;

// psfi 生成 public static final int
public static final int ...;

// psfs 生成 public static final String
public static final String ...;

// main 或者 psvm 生成 main 函数
public static void main(String[] args) {
// fori 生成 for 循环
for (int i = 0; i < 10; i++) {

}

// C 生成 Callable
Callable<Object> callable = new Callable<Object>() {
public Object call() throws Exception {

}
};

// I 生成遍历语句
for (Object o :) {

}

// ifn 生成 if null 语句
if (callable == null) {

}

// inn 生成 if not null 语句
if (callable != null) {

}

// inst 生成 instanceof 语句
if (callable instanceof Object) {
Object o = (Object) callable;

}

// itar 生成数组遍历语句
for (int i = 0; i < args.length; i++) {
String arg = args[i];

}

// itco 生成 java.util.Collection 遍历语句
for (Iterator iterator = collection.iterator(); iterator.hasNext(); ) {
Object next = iterator.next();

}

// iten 生成 java.util.Enumeration 遍历语句
while (enumeration.hasMoreElements()) {
Object nextElement = enumeration.nextElement();

}

// iter 生成 Iterable 或 数组 遍历语句
for (String arg : args) {

}

// itit 生成 java.util.Iterator 遍历语句
while (iterator.hasNext()) {
Object next = iterator.next();

}

// itli 生成 java.util.List 遍历语句
for (int i = 0; i < list.size(); i++) {
Object o = list.get(i);

}

// ittok 生成遍历 token 的语句
for (StringTokenizer stringTokenizer = new StringTokenizer(); stringTokenizer.hasMoreTokens(); ) {
String s = stringTokenizer.nextToken();

}

// lazy 生成延迟初始化语句
if (callable == null) {
callable = new Callable<Object>();
}

// lst 生成获取数组最后一个元素语句
args[args.length - 1];

// mn 生成 Math.min
min = Math.min(min, max);

// mx 生成 Math.max
max = Math.max(max, min);

// ritar 生成降序遍历数组的语句
for (int i = args.length - 1; i >= 0; i--) {
String arg = args[i];

}

// RL 生成 ReadWriteLock.readLock()
ReadWriteLock.readLock().lock();
try {

} finally {
ReadWriteLock.readLock().unlock();
}

// serr 生成 System.err.println()
System.err.println();

// serrc 生成 System.err::println
System.err::println;

// souf 生成 System.out.printf("")
System.out.printf("");

// sout 生成 System.out.println()
System.out.println();

// soutc 生成 System.out::println
System.out::println;

// soutm 生成打印当前类和方法的语句
System.out.println("Example.main");

// soutp 生成打印当前方法的参数名字和值
System.out.println("args = " + Arrays.deepToString(args));

// soutv 生成打印一个值的语句
System.out.println("callable = " + callable);

// St 生成 String
String ;

// thr 生成 throw new
throw new;

// toar 生成 java.util.Collection 元素到数组的语句
.toArray(new Object[0]);

// WL 生成 WriteLock.writeLock() 语句
ReentrantReadWriteLock.WriteLock.writeLock().lock();
try {

} finally {
ReentrantReadWriteLock.WriteLock.writeLock().unlock();
}

}
}

3 自定义模板

毕竟官方内置的模板不能满足我们个人编码风格的需求。Live Templates 提供了可变函数供我们自定义。

简单用法

添加自定义模板,首先需要填写触发词(即Abbreviation),描述可选,然后定义模板的上下文,点击define选择Java,这样编辑Java的时候就会触发当前模板,定义好上下文后,就可以填写模板了。

比如定义一个私有变量:

通过输入 privateField 就可以输出以下代码:


@Getter
@Setter
private $TYPE$ $NAME$;

模板支持定义变量,$$包围的字符代表一个变量。$END$ 是一个特殊的预定义变量,表示光标最后跳转的位置。每个变量的位置都可以跳转到。

4 进阶用法

如果你用过vim的Code Sinppet插件,你会发现函数可以在模板中执行,当然强大的Live Templates也支持,IDEA可以感知代码的语义,比如参数当前编辑的功能。但这就是让我们玩得开心的原因。我们从易到难探索模板函数的功能。

前面我们提到的变量可以绑定到函数上,配置方法如上图所示。

声明变量是一个常见的操作,尤其是需要声明需要注解的变量时。注释的时候,这些代码写起来很枯燥。这是我定义的模板:

明 logger 也是一个常见的操作。现在我们使用一个函数 className() 来实现。顾名思义,它的作用就是返回当前的类名。

5 总结

上面我们简单介绍了常用的模板函数。其实IDEA还有很多其他的模板函数。有关详细信息,请参阅创建和编辑模板变量。IDEA 是一个非常强大的工具。善用工具可以大大提高工作效率,把精力集中在关键的事情上,而不是把时间浪费在写重复的代码上。一些更高级的用法还有待发现。好好利用它,也可以省下很多重复写代码的时间。


来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯