问题标签 [static-import]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3167 浏览

java - 通过 IntelliJ Idea 中的静态导入替换常量/方法的导入

我有一个包含一些格式常量的代码ClassName.CONSTANT_NAME。我想快速将其替换为CONSTANT_NAME. 但我还没有找到任何有效的方法来做到这一点。

每次我想静态导入某些东西时,我都必须手动删除类名,然后打开静态导入工具提示,其中可能包含几个匹配常量名称的东西......效率低下。

有什么快速的方法可以将导入转换为静态导入?理想情况下,我会为此分配一个快捷方式。

0 投票
0 回答
536 浏览

java - Junit静态导入assertTrue失败但Assert.assertTrue通过?

我有一个单元测试方法如下:

上述测试失败。但是,如果我评论静态导入断言assertTrue并取消评论正常断言Assert.assertTrue,它就会通过。

我只添加了相关的代码。如果需要更多信息,请告诉我。

上述行为的原因可能是什么?

编辑

以下是我的进口:

0 投票
3 回答
442 浏览

java - 静态导入文件或静态导入单个项目

我不确定我是对还是错,但 SonarLint 给了我无数关于重复使用某些字符串的警告。

结果,我为模块中的字符串创建了一个常量文件,该模块已在项目中的每个其他模块中访问。

我的想法是,如果我们不断被警告这一点。它可能会多次创建这些字符串中的每一个并暂时增加内存。(它是一个网络应用程序,生成带有许多经常重复的术语的 JSON 和 XML,例如“身份”或“社区”)

我想知道的问题是,我的 IDE(IntelliJ)似乎只是不断添加以下行:

代替:

请记住,该文件目前很小,大约有 100 个常量,但这个数字最终会达到 250 个。

首先我的问题是,哪个导入效率更高,只需导入文件,导入每个所需的常量,或者没关系(文件中最多肯定是 250 个常量)

我的第二个问题是,这值得付出努力吗(简单但繁重的工作)?一个例子是:

以上可能位于不同文件中的 3 或 4 个位置。这两个常量的定义是:

最严重的罪犯在下面。它在从前端调用后端的每个方法中(在浏览器中的 ajax 请求之后):

同样的定义是:

我已为包裹名称加注星标以试图掩盖公司。即使这并没有真正共享任何 IP 或秘密,也比抱歉更安全。

我感谢您提供的任何反馈(好的或坏的)。

附加信息:我为当前使用的每个文件手动导入的文件之一对这些常量有 22 个导入。我想如果数字达到这样的高度,那么也许我应该改用*?还是它仍然有记忆影响?

0 投票
1 回答
270 浏览

java - 当导入的类扩展第 3 方库时,Java 导入静态失败

问题设置由三个 java 库组成(为了便于阅读,我删除了所有包名,到处都使用全限定名):

  1. external-lib:提供抽象类

    /li>
  2. my-lib-A:提供类

    external-lib在 my-lib-A 的类路径中。

  3. my-lib-B 从 ClassA 静态导入 FOO:

    my-lib-A在 my-lib-B 的类路径external-lib中,但不在。

问题:该import static行产生以下错误:

The type AbstractExternal cannot be resolved. It is indirectly referenced from required .class files.

但是(1),当将 ClassB 修改为

编译器很高兴。

但是(2),当添加第二个抽象时,两个 my-lib-A 之类的

上面示例中 ClassA.FOO 的静态导入有效。

问题1:为什么在使用作品时会import static ClassA.FOO失败?import ClassAClassA.FOO

问题 2:为什么import static ClassA.FOO当它从 my-lib-A 扩展另一个类然后扩展 AbstractExternal 时会起作用?

编辑:重要信息:有问题的编译器是Eclipse Compiler for Java (ECJ)。

编辑 2:javac 与 ECJ 同步,并且能够在静态导入失败时编译 ClassB 中的正常导入和类访问。

0 投票
1 回答
93 浏览

intellij-idea - IntelliJ Idea 更改粘贴的代码

当使用“静态”导入从另一个类粘贴 Kotlin 代码时,例如:

我希望 IDE 像这样添加导入

但不是那个 IntelliJ Idea(版本 2018.1.1)将粘贴的代码更改为

并添加

那是错误还是功能,我可以更改它吗?

0 投票
1 回答
284 浏览

java - 具有相同静态变量名称的静态导入

我正在对 Long 和 Integer 类的成员进行静态导入:

现在,如果我尝试使用这个变量 MAX_VALUE 并打印它,我会得到一个错误:

这可以。为了消除错误,我将不得不删除一个静态导入来解决这种歧义。

我得到的主要问题是,如果我将通配符*与 Integer 类静态导入一起使用,则该类将被编译而没有错误:

歧义必须仍然存在。为什么编译没有问题?

0 投票
1 回答
37 浏览

javascript - Polymer PWA Starter Kit 中随机行为的 JavaScript 导出导入

我有一个用作服务器模型的文件,导入所有其他服务并导出它们,所以我只需要在其他文件中进行一次导入,如下所示:

现在,这些服务中的每一个都只是简单地导出一些常量。像这样:

我想实现在其他文件中使用类似 Server.User.registeredUsers 的东西。这有点工作,我的组件像这样导入服务器:

旁注:我正在使用 PWA-Starter-Kit:https ://github.com/Polymer/pwa-starter-kit

现在我遇到以下有问题的情况:

我正在将 * 作为 Server 导入,如上所示,生成的 Object 有时具有默认属性。这意味着有时我必须访问 Server.User,有时又必须访问 Server.default.User。这似乎完全是随机的。

我做了一个这样的解决方法:

这将永远有效。但这有点hacky,因为行为似乎不可预测。我想调整一下。这里可能是什么问题,我该如何解决?

我已经尝试将 server.js 中的导出定义为默认值。

服务器.js

并像这样导入:

导致同样的问题。

对我来说这是一个非常有趣的问题,可能是什么原因?何时使用 Server.default.User 和 Server.User 是绝对随机的。我可以继续刷新页面,它会不时改变其行为(有时在每次刷新时,有时仅在 3 次或更多次之后)。

无论如何,我可能不会真正将这个巨大的导入/导出文件用于生产,但我仍然想解决这个问题。为了好奇。

编辑:

导致:

非默认

或者:

默认

0 投票
3 回答
91 浏览

java - 静态成员的方法是否被认为是静态的?

在以下来自 pg 的静态导入示例中。Oracle OCA/OCP Java SE 7 Programmer I and II Study Guide 的第 16 条:

书中提到标有 3 的行:

“现在我们终于看到了静态导入功能的好处!我们不必在 System.out.println 中输入 System!哇!第二,我们不必在 Integer.MAX_VALUE 中输入 Integer。所以在这行代码中,我们能够使用静态方法和常量的快捷方式。

在这里将 println 称为静态方法是错误的吗?

上面的程序如文中所示。

对于标记为 4 的行,书中说:“最后,我们再做一个捷径,这次是为 Integer 类中的一个方法。”

0 投票
1 回答
1118 浏览

java - 在 IntelliJ Idea 中用静态导入替换常量的导入

我有一个代码,其中包含一些格式为 ClassName.CONSTANT_NAME 的常量。我想用 CONSTANT_NAME 快速替换它。但我还没有找到任何有效的方法来做到这一点。每次我想静态导入一些东西时,我必须:

对于每个班级。但是有〜1000个课程

对于许多类,是否有任何快速将导入转换为静态导入的方法?

0 投票
6 回答
3461 浏览

java - pmd规则:静态导入过多可能导致unitTest中代码乱码不违反

我有一个疑问,我有一个类,我在其中使用不同的静态导入来导入常量,我的问题是我收到错误消息:Too many static imports may lead to messy code. 但在单元测试中,看起来这不是一个坏习惯。例如在一个单元测试类中,我使用这个导入有任何问题:

相反,在我的课堂上:

这些导入给我带来了麻烦,我收到错误消息:太多静态导入可能导致代码混乱。我不太清楚为什么。

我无法访问 pmd 文件来找出这个问题的真正原因。有什么线索吗?

谢谢!