跳至主要內容
IntelliJ IDEA 2024.1:增强对Spring和Quarkus框架的支持、GitHub Action的支持、更新HTTP Client等

IntelliJ IDEA 2024.1:增强对Spring和Quarkus框架的支持、GitHub Action的支持、更新HTTP Client等

有段时间没有更新IDEA了,早上看到 IntelliJ IDEA 2024.1 EAP 5发布的邮件提示,瞄了一眼,发现真的是越来越强了,其中不少功能对我来说还是非常有用的。也许这些能力对关注DD的小伙伴也有帮助,所以搞篇博客介绍和推荐一下。

Spring、Quarkus等主流框架的支持增强

  1. Search Everywhere功能中增加Endpoints选项卡

程序猿DD原创大约 4 分钟IntelliJ IDEA前沿资讯IntelliJ IDEA
GitHub Copilot的最佳免费平替

在如今这个人工智能高速发展的时代,每个行业都在被AI技术影响而改变。层出不穷的AI辅助工具,让我们看到了机器正在取代一部分基础的日常工作。对于我们开发者而言,当前最炙手可热的就是GitHub Copilot,市面上最好的开发者辅助工具。GitHub Copilot所提供的代码补全、建议、解释等能力非常强大,可以有效地提高编程速度。但是,GitHub Copilot是基于OpenAI所构建,后者的成本并不小,所以GitHub Copilot成为一款付费工具是非常自然的。

那么,对于预算有限的开发者而言,是否有合适的免费平替呢?答案是肯定的!今天,就给大家推荐最近我一直在用,且觉得还不错的插件:通义灵码。推荐的理由,我总结为以下几点:


程序猿DD原创大约 8 分钟IntelliJ IDEAIntelliJ IDEA
IDEA重构技巧:更改签名

IDEA重构技巧:更改签名

来看看如何安全地更改类或方法的签名。

我们在 BugReport 中的方法 binaryStrings 接受一个 String 参数:

public boolean binaryStrings(String b) {
    Stack<Character> s = new Stack<>();
    for (char c : b.toCharArray())
        if (s.empty() || !s.peek().equals(c))
            s.push(c);
        else
            s.pop();
    return s.empty();
}

DD编辑部原创大约 2 分钟IntelliJ IDEAIntelliJ IDEA
IDEA重构技巧:提取常量

IDEA重构技巧:提取常量

在代码库中,通常建议使用常量而不是文字值,那么我们来看看如何重构代码以引入常量

public static boolean beautifulBinaryStrings(String s) {
    while (!s.equals(s = s.replaceAll("AA|BB", ""))) {
        System.out.println(s);
    }
    return s.isEmpty();
}

DD编辑部原创小于 1 分钟IntelliJ IDEAIntelliJ IDEA
IDEA重构技巧:提取字段

IDEA重构技巧:提取字段

您可以通过此重构引入或提取字段并将其初始化。

我们的 ViewImpl 类中的方法 getItemsList 使用常量 0 和 4 来获取一个列表的子集。

public class ViewImpl implements View {
   @Override
   public List<Integer> getItemsList() {
       return List.of(1, 2, 3, 4, 5).subList(0,4);
   }
}

DD编辑部原创小于 1 分钟IntelliJ IDEAIntelliJ IDEA
IDEA重构技巧:提取方法

IDEA重构技巧:提取方法

Extract Method 重构可以使您的方法更短、更易读。

public boolean binaryStrings(String b) {
    Stack<Character> s = new Stack<>();
    for (char c : b.toCharArray())
        if (s.empty() || !s.peek().equals(c))
            s.push(c);
        else
            s.pop();
    return s.empty();
}

DD编辑部原创大约 1 分钟IntelliJ IDEAIntelliJ IDEA
IDEA重构技巧:提取参数

IDEA重构技巧:提取参数

通过 Extract Parameter 重构,您可以在方法中选择一个常量或表达式,并将其定义为参数传递给方法。 在本示例中,我们还为 getItemsList 方法引入了第二个字段,名为 toIndex

public class ViewImpl implements View {
   private final int fromIndex;
   private final int toIndex;

   public ViewImpl() {
       fromIndex = 0;
       toIndex = 4;
   }

   public List<Integer> getItemsList() {
       return List.of(1, 2, 3, 4, 5).subList(fromIndex, toIndex);
   }
}

DD编辑部原创大约 1 分钟IntelliJ IDEAIntelliJ IDEA
IDEA重构技巧:提取变量

IDEA重构技巧:提取变量

我们也可以根据需要提取变量

有时,我们可以将表达式移到一个适当命名的变量中,使代码更易读。

public ContextActionsWithAltEnter(double cityPopulation) {
    if (cityPopulation > 0x1.2016eb678a2p43 && cityPopulation < 987677.8) {
        if (cityPopulation % 5 == 0) {
            this.cityPopulation /= 2;
        }
    }
    this.cityPopulation = cityPopulation;
}

DD编辑部原创大约 1 分钟IntelliJ IDEAIntelliJ IDEA
IDEA重构技巧:内联方法

IDEA重构技巧:内联方法

内联方法重构 是 Extract Method 重构的逆转。

我们可以在 macOS 上使用快捷键 ⌥⌘N ,或者在 Windows/Linux 上使用 Ctrl+Alt+N 来内联刚刚创建的方法 manipulateStack


DD编辑部原创小于 1 分钟IntelliJ IDEAIntelliJ IDEA
2
3
4
5
...
7