本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

导航和编辑Java源代码

Visual Studio Code 首先是一个源代码编辑器,具有丰富的编辑功能。在本文档中,我们将介绍一些特定于 Java 的功能,这些功能在处理 Java 时非常有用。

如果您在使用以下功能时遇到任何问题,可以通过输入 问题 来联系我们。

代码导航

通过大纲视图,您可以方便地导航当前文件中的成员。项目视图也提供了对项目很好的概览。作为一个Java编辑器,它还支持调用层次结构、类型层次结构、定义导航、在工作区中搜索类型等。

搜索符号

您可以在当前文件或工作区中搜索符号,以更快地导航您的代码。

在工作区中搜索符号

在当前工作区中搜索符号,首先按⌘T(Windows, Linux Ctrl+T,然后输入符号的名称。之前会显示潜在匹配的列表。如果你选择的匹配是在未打开的文件中找到的,文件将会在导航到匹配的位置之前被打开。或者,你也可以使用 快速打开⌘P(Windows, Linux Ctrl+P),然后输入‘#’命令来搜索当前工作区。⌘T(Windows, Linux Ctrl+T只是‘#’命令的快捷方式,所以一切工作都是一样的。

在当前文件中搜索符号

要在当前文件中搜索符号,请使用快速打开 (⌘P (Windows, Linux Ctrl+P)) 然后输入'@'命令,然后输入您要查找的符号名称。将出现一个潜在匹配项的列表,并在您输入时进行过滤。从匹配项列表中选择以导航到其位置。

窥视定义

您可以通过使用“查看定义”功能快速查看符号是如何定义的。此功能会在窥视Windows中显示定义附近的一小段代码,因此您可以在不离开当前位置的情况下查看。

要查看符号的定义,请将光标放在源代码中该符号的任何使用处,然后按⌥F12(WindowsAlt+F12,LinuxCtrl+Shift+F10。或者,您可以从上下文菜单中选择Peek Definition(右键单击,然后选择Peek Definition)。

转到定义

您还可以通过使用“转到定义”功能快速导航到符号定义的位置。

要跳转到符号的定义,请将光标放在源代码中该符号的任何位置,然后按F12。或者,您可以选择转到定义从上下文菜单(右键单击,然后选择转到定义)。如果该符号只有一个定义,您将直接导航到其位置,否则竞争定义将显示在工具提示Windows中,如上一节所述,您必须选择要跳转到的定义。

前往超级实施

通过悬停并点击 转到超级实现 链接,您可以跟踪类的实现和覆盖的方法。

春季导航

调用层级

调用层次视图显示所有从函数调用或到函数调用,并允许您深入钻取调用者和被调用者的调用关系。右键单击一个函数并选择预览 > 预览调用层次.

调用层级预览

你也可以在函数体内右键点击并选择显示调用层次结构

调用层级菜单

类型层次

类型层次视图显示了Java对象之间的继承关系。您可以右键单击一个类型并选择显示类型层次

折叠区域

折叠区域可以让你折叠或展开代码片段,以便更好地查看源代码。

智能选择

使用智能选择(语义选择),您可以根据源代码中光标位置的语义信息扩展或缩小选择范围。

  • 要扩展选择,请使用⌃⇧⌘→(Windows, LinuxShift+Alt+Right
  • 要缩小选择范围,请使用⌃⇧⌘←(Windows, LinuxShift+Alt+Left

语义突出显示

语法高亮是一个重要功能,它允许您更高效地阅读代码。借助语义高亮,VS Code可以根据Java语言服务的符号信息提供更准确的源代码着色。

以下只是一个例子,左边是启用语义突出显示后的行为,右边是只有语法突出显示的行为。

语义突出显示

您可以在 Java 语言支持扩展的维基 上了解更多有关 Java 语义高亮的详细信息。

使用 Spring Boot 导航代码

Spring Boot Tools 扩展为 Spring Boot 项目提供了增强的导航和代码完成支持。

  • @/显示所有定义的请求映射(映射路径,请求方法,源位置)
  • @+显示所有定义的 bean(bean 名称,bean 类型,源位置)
  • @>显示所有函数(原型实现)
  • @显示代码中的所有Spring注解

春季导航

要了解更多关于Spring Boot在Visual Studio Code中的支持,请阅读Spring Boot在Visual Studio Code中

代码编辑

编辑代码也很容易,有IntelliSense进行智能代码补全和签名细节。您可以使用代码片段以及各种代码操作,例如生成Getters/Setters和整理导入,以进一步提高您的生产力。

Visual Studio Code中的Java支持可以自动检测代码中的问题,并为您提供快速修复建议。

关于代码重构和代码操作的更多详细信息,请参见代码重构和源操作

智能感知

在Visual Studio Code中对Java的代码补全由Red Hat提供的Java™语言支持提供。该扩展由与Eclipse相同的Java开发工具(JDT)驱动,因此您可以期望相同水平的支持。

此外,还有由AI辅助的IntelliSense,称为IntelliCode。它通过将您最有可能使用的项放在完成列表的顶部来节省您的时间。IntelliCode建议基于GitHub上的成千上万的开源项目,每个项目都有超过100颗星,因此它是在高质量项目的最常见用法上进行训练的。结合您的代码上下文,完成列表会根据这些实践进行调整。以下是Java中的IntelliCode的实际演示。

IntelliCode 与流行的 Java 库和框架(如 Java SE 和 Spring)配合得很好。无论您是在开发单体 web 应用程序还是现代微服务,它都会帮助您。

创建新文件

VS Code 支持在创建 Java 源文件时应用模板。当您创建一个.java在文件资源管理器中创建文件,语言服务器将自动生成类体,并为您填充包信息:

代码片段

Visual Studio Code 支持广泛的流行 Java 代码片段,使您更高效,例如类/接口、syserr、sysout、if/else、try/catch、静态 main 方法。使用 Java 语言服务器的信息,它还在选择期间提供代码片段的预览。

例如,输入"sout"或"sysout"将生成一个代码片段System.out.println().
同样地,输入 "main" 或 "psvm" 将生成一个代码片段用于 public static void main(String[] args) {}输入:.

代码片段

完整的快捷键列表如下:

代码片段快捷键

快捷键 描述
构造函数 公共构造函数
当为则 Do-while 语句
每个,迭代 遍历数组或可迭代对象
福里 遍历数组
如果 如果语句
条件语句 条件语句
如果为空 如果语句检查为空
如果非空 如果语句检查不为空
主要,psvm 公共静态主方法
新的 创建新对象
私有方法 私有方法
私有静态方法 私有静态方法
输入:prf 私人领域
受保护的方法 受保护的方法
公共方法 公共方法
公共静态方法 公共静态方法
开关 切换语句
系统错误,错误 打印到标准错误
系统输出, 输出 打印到标准输出
systrace, soutm 打印当前方法到标准输出
尝试_捕获 尝试/捕获块
尝试资源 尝试资源语句
当语句

后缀片段快捷方式

快捷键 模板内容 描述
演员阵容 ((SomeType) expr) 将表达式转换为新类型
否则 if (!表达式) 创建一个否定的if语句
对于 对于(expr)中的(T item) 创建一个 for 语句
福里 for (int i = 0; i < expr.length; i++) 创建一个 for 循环,用于遍历数组
对于 for (int i = expr.length-1; i >= 0; i--) 创建一个 for 循环,以反向顺序遍历数组
如果 if (表达式) 创建一个 if 语句
输入:nnull if (表达式 != null) 创建一个if语句并检查表达式是否不解析为null
if (表达式 == null) 创建一个if语句,检查表达式是否解析为null
系统输出 System.out.println(expr) 将受影响的字符串发送到System.out.println(..)调用
投掷 抛出表达式 抛出给定的异常
变量 T 名称 = 表达式 创建一个新变量
while (表达式) {} 创建一个 while 循环