在 IntelliJ 中可以实现而在 Eclipse 中无法实现的事情?

2023-12-02

我听说有人改变了其中一种方式,并且对其中一种发誓。

作为 Eclipse 的忠实粉丝,但还没有时间尝试 IntelliJ,我有兴趣从“前 Eclipsians”IntelliJ 用户那里听到一些可以使用 IntelliJ 完成而 Eclipse 无法完成的具体操作。

Note:这不是一个主观问题,也不是为了变成一场 IDE 圣战。请否决任何煽动性答案.


按住 CTRL 键并单击可在任何地方使用

按住 CTRL 键并单击,可以将您带到定义单击的对象的位置,它在任何地方都有效 - 不仅在 Java 代码中的 Java 类和变量中,而且在 Spring 配置中(您可以单击类名称、或属性或 bean 名称)、在 Hibernate 中(您可以单击可以单击属性名称或类,或包含的资源),您可以一键从 Java 类导航到将其用作 Spring 或 Hibernate bean 的位置;单击包含的 JSP 或 JSTL 标记也可以,按住 Ctrl 键单击 JavaScript 变量或函数会将您带到定义它的位置,或者如果有多个位置,则显示一个菜单,包括其他 .js 文件和 HTML 或 JSP 中的 JS 代码文件。

自动完成多种语言

休眠

HSQL 表达式、Hibernate 配置(包括类、属性和数据库列名称)、Spring 配置中的自动完成

<property name="propName" ref="<hit CTRL-SPACE>"

它会显示您可以注入该属性的那些 bean 的列表。

Java

Java 代码中非常智能的自动完成功能:

interface Person {
    String getName();
    String getAddress();
    int getAge();
}
//---
Person p;
String name = p.<CTRL-SHIFT-SPACE>

它仅向您显示获取名称(), 获取地址() and toString()(只有它们在类型上兼容)和获取名称()位于列表的第一位,因为它有更相关的名称。最新版本 8(仍在 EAP 中)具有更加智能的自动完成功能。

interface Country{
}
interface Address {
    String getStreetAddress();
    String getZipCode();
    Country getCountry();
}
interface Person {
    String getName();
    Address getAddress();
    int getAge();
}
//--- 
Person p;
Country c = p.<CTRL-SHIFT-SPACE>

它会默默地自动完成它

Country c = p.getAddress().getCountry();

JavaScript

JavaScript 中的智能自动完成。

function Person(name,address) {
    this.getName = function() { return name };
    this.getAddress = function() { return address };
}

Person.prototype.hello = function() {
    return "I'm " + this.getName() + " from " + this.get<CTRL-SPACE>;
}

它仅显示获取名称() and 获取地址(),无论你的项目中的其他 JS 对象中的 get* 方法如何,然后按住 ctrl 键单击this.getName()带你到这个定义的地方,即使还有其他一些获取名称()您的项目中的函数。

HTML

我是否提到过文件路径中的自动完成和 Ctrl 单击,例如

HTML 标签属性中的自动完成。 HTML 标签的样式属性中的自动完成,包括属性名称和值。类属性中也自动完成。
输入

简单的母语突出显示

最新版本具有语言注入,因此您可以声明您的自定义 JSTL 标记通常包含 JavaScript,并且它将突出显示其中的 JavaScript。

<ui:obfuscateJavaScript>function something(){...}</ui:obfuscateJavaScript>

跨所有项目的索引搜索。

您可以使用任何Java类或方法的FindUsage,它会找到它的使用位置,不仅包括Java类,还包括Hibernate、Spring、JSP和其他地方。重命名方法重构不仅可以重命名Java类中的方法,还可以重命名任何包括注释的方法(无法确定注释中的字符串是否真的是方法名称,因此它会询问)。即使存在同名的另一个类的方法,它也只会找到您的方法。 良好的源代码控制集成(SVN 支持变更列表吗?IDEA 支持每个源代码控制),能够使用您的更改创建补丁,以便您可以将更改发送给其他团队成员而无需提交。

改进的调试器

当我看着HashMap在调试器的监视窗口中,我看到逻辑视图 - 键和值,上次我在 Eclipse 中执行此操作时,它显示带有哈希和下一个字段的条目 - 我并没有真正调试HashMap,我只是想看一下内容。

Spring 和 Hibernate 配置验证

它会在您编辑 Spring 和 Hibernate 配置时对其进行验证,因此我不需要重新启动服务器即可知道我拼写错误的类名,或添加了构造函数参数,因此我的 Spring cfg 无效。

上次尝试时,我无法在 Windows XP x64 上运行 Eclipse。

它会建议你人名 or 人.地址。 按住 Ctrl 键并单击人名它会引导你到获取名称()的方法Person class.

Type Pattern.compile("");将 \\ 放在那里,按 CTRL-SPACE 并查看有关可以在正则表达式中放入哪些内容的有用提示。您还可以在此处使用语言注入 - 定义您自己的接受字符串参数的方法,在 IntelliLang 选项对话框中声明您的参数是正则表达式 - 它也会在那里为您提供自动完成功能。不用说,它会突出显示不正确的正则表达式。

其他特性

有一些功能我不确定 Eclipse 中是否存在。但至少我们团队中使用 Eclipse 的每个成员还使用一些合并工具将本地更改与源代码管理中的更改合并,通常是 WinMerge。我从来不需要它——合并到 IDEA 对我来说就足够了。通过单击 3 次,我可以在源代码管理中查看文件版本列表,再单击 3 次,我可以比较以前的版本,或者以前和当前的版本,并可能合并。

它允许指定我需要里面的所有 .jarWEB-INF\lib文件夹,无需单独选取每个文件,因此当有人将新的 .jar 提交到该文件夹​​时,它会自动选取它。

上面提到的大概是它所做的10%。我不使用 Maven、Flex、Swing、EJB 和很多其他东西,所以我不知道它对它们有何帮助。但确实如此。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 IntelliJ 中可以实现而在 Eclipse 中无法实现的事情? 的相关文章

  • Mockito:如何通过模拟测试我的服务?

    我是模拟测试新手 我想测试我的服务方法CorrectionService correctPerson Long personId 实现尚未编写 但这就是它将执行的操作 CorrectionService将调用一个方法AddressDAO这将
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • java.lang.IllegalStateException:应用程序 PagerAdapter 更改了适配器的内容,而没有调用 PagerAdapter#notifyDataSetChanged android

    我正在尝试使用静态类将值传递给视图 而不是使用意图 因为我必须传递大量数据 有时我会收到此错误 但无法找出主要原因是什么 Error java lang IllegalStateException The application s Pag
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 检测并缩短字符串中的所有网址

    假设我有一条字符串消息 您应该将 file zip 上传到http google com extremelylonglink zip http google com extremelylonglink zip not https stack
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐

  • 允许支持者以其他用户身份登录

    我们目前有一个 Identity server 4 应用程序 使用实体框架核心和 asp net 标识 我们有一群支持者 他们需要能够访问我们的用户帐户 以便通过电话帮助他们解决问题 我们的用户无法弄清楚如何使用团队查看器 因为他们中的大多
  • 跨域ajax请求

    我想从跨域URL获取HTML响应页面 为此 我使用 ajax 请求 ajax type GET url http wcidevapps com salescentral idisk 0001000383 iDisk dataType jso
  • openERP中无法导入自定义模块

    我已经完成了简单的自定义模块openerp使用 python 和 xml 但我无法在 openerp 中导入 我的模块没有在 openerp 中显示 this is init py import os os environ TZ UTC S
  • 将html添加到div而不替换其中当前内容

    我正在尝试将 dhtml 添加到 ID 为 upload results 的 div 中 这应该可以在不替换 div 中当前内容的情况下工作 代码 有趣的部分在底部
  • 替换 ffdf 对象中的 NA

    我正在使用一个 ffdf 对象 该对象在某些列中具有 NA NA 是使用左外合并的结果合并 ffdf 我想用 0 替换 NA 但没能做到 这是我正在运行的代码 library ffbase deals lt merge deals rk b
  • 泛型结构中的运算符重载:我可以为特定类型(?)的泛型创建重载吗?

    我正在 C 中使用通用结构定义物理单位 一切进展顺利 直到出现错误 二元运算符的参数之一必须是包含类型 当尝试重载数学运算符以便它们在不同单位之间进行转换时 所以 我有这样的事情 public interface ScalarUnit pu
  • 如果 Firestore 数据库发生更改,我是否需要重新读取所有文档?

    假设我尝试使用 Firestore 侦听器获取用户喜欢的 eventID 列表 我也使用离线持久化 从这个线程 Firestore 使用缓存直到在线内容更新 我知道侦听器将立即使用缓存中的结果触发 如果有更改结果 我将获得包含更改的另一个快
  • 使用bash对数据进行水平排序

    我有一个充满列数据的文件 sarah mark john 10 20 5 x y z 我想对数据进行排序 使列保持完整 但第二行按递增顺序排列 因此如下所示 john sarah mark 5 10 20 z x y 我一直在查看排序命令
  • 在 OpenCV 中使用 inRange() 检测某个范围内的颜色

    我正在使用 OpenCV 编写一个用于月球陨石坑检测的 C 程序 该程序似乎只能准确检测到一小部分陨石坑 我的这种方法的策略是首先将图像转换为 HSV 然后使用inRange 捕获一系列值中的颜色以产生阈值 然后对其进行高斯模糊并使用Hou
  • Powershell:TabExpansion++ ArgumentCompleter 的多个参数

    我正在开发一个功能来安排用户的主驱动器传输 我将使用 TabExpansion 来允许用户自动完成服务器名称 该名称是从 CSV 文件填充的 两者都会有参数OldServer and NewServer TabExpansion 是否可以为
  • Python 3.6 ModuleNotFoundError:没有名为“pyttsx3”的模块

    我完全不知道会出现什么问题 我执行了 pip 安装程序 pip install pyttsx3 并重新安装了 JetBrains PyCharm 但它仍然无法正常工作 启动 pyCharm 终端窗口 然后安装 pipenv 它是改进的 pi
  • 如何限制用户在 DataGridView 列的特定单元格中仅输入数值?

    我有一个DataGridView我想限制用户在特定列下的单元格中仅输入数值的控件 我怎样才能完成这种类型的验证DataGridView cells 当我创建一个简单的文本框时这是可能的 但是我如何验证DataGridView Cell 您可
  • 无法连接到数据库:用户“@”localhost”对数据库“socialdb”的访问被拒绝

    我见过一些这样的错误 但我没有找到答案 Unable to connect to database Access denied for user localhost to database socialdb Socialdb 是我的数据库
  • 声明一个数组并更改其内容[重复]

    这个问题在这里已经有答案了 我正在编写测试代码来探索数组的属性 为什么这有效 public static void main String args int testing 1 2 3 for int i 0 i
  • 更改 dataGridView 中垂直滚动条的宽度

    我正在开发一个触摸屏应用程序 我被要求增大滚动条的大小 以便用户可以使用它们 到目前为止我还没能解决这个问题 我读到 如果增加 MainForm 窗口滚动条的宽度 则 dataGridView 将继承它 我尝试了一些方法 但到目前为止还没有
  • 在流星方法中使用集合插入中的 id

    在我的 Angular Meteor 应用程序中 我想使用从插入到客户端的 Meteor 方法中的集合创建的 id 在客户端 Angular 组件中存在以下方法 onSubmit void Meteor call insertItem th
  • 有没有办法从 JS 中的图像手动创建 Base64code

    我在 html 画布上绘制图像 这就是计算像素的方法 for var i 0 i lt data length i 4 var red data i red var green data i 1 green var blue data i
  • 如何使用 OGNL 索引引用运算符

    使用 OGNL 您可以引用操作上下文对象 例如 application session root action request parameters attr 以及动作上下文 context 该框架将 OGNL 上下文设置为我们的 Acti
  • NodeJS HTML 和 CSS

    我不知道为什么 CSS 在这里被忽略 为了能够在 HTML 中使用 CSS 我需要对 NodeJS 做一些特定的事情吗 它与标签的 type 属性有什么关系吗 NodeJS 代码 app get function request respo
  • 在 IntelliJ 中可以实现而在 Eclipse 中无法实现的事情?

    Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我听说有人改变了其中一种方式 并且对其中一种发誓 作为 Eclipse 的忠实粉丝 但还没有时间尝试 IntelliJ 我有兴趣从