问题标签 [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.
java - 通过 IntelliJ Idea 中的静态导入替换常量/方法的导入
我有一个包含一些格式常量的代码ClassName.CONSTANT_NAME
。我想快速将其替换为CONSTANT_NAME
. 但我还没有找到任何有效的方法来做到这一点。
每次我想静态导入某些东西时,我都必须手动删除类名,然后打开静态导入工具提示,其中可能包含几个匹配常量名称的东西......效率低下。
有什么快速的方法可以将导入转换为静态导入?理想情况下,我会为此分配一个快捷方式。
java - Junit静态导入assertTrue失败但Assert.assertTrue通过?
我有一个单元测试方法如下:
上述测试失败。但是,如果我评论静态导入断言assertTrue
并取消评论正常断言Assert.assertTrue
,它就会通过。
我只添加了相关的代码。如果需要更多信息,请告诉我。
上述行为的原因可能是什么?
编辑
以下是我的进口:
java - 静态导入文件或静态导入单个项目
我不确定我是对还是错,但 SonarLint 给了我无数关于重复使用某些字符串的警告。
结果,我为模块中的字符串创建了一个常量文件,该模块已在项目中的每个其他模块中访问。
我的想法是,如果我们不断被警告这一点。它可能会多次创建这些字符串中的每一个并暂时增加内存。(它是一个网络应用程序,生成带有许多经常重复的术语的 JSON 和 XML,例如“身份”或“社区”)
我想知道的问题是,我的 IDE(IntelliJ)似乎只是不断添加以下行:
代替:
请记住,该文件目前很小,大约有 100 个常量,但这个数字最终会达到 250 个。
首先我的问题是,哪个导入效率更高,只需导入文件,导入每个所需的常量,或者没关系(文件中最多肯定是 250 个常量)
我的第二个问题是,这值得付出努力吗(简单但繁重的工作)?一个例子是:
以上可能位于不同文件中的 3 或 4 个位置。这两个常量的定义是:
最严重的罪犯在下面。它在从前端调用后端的每个方法中(在浏览器中的 ajax 请求之后):
同样的定义是:
我已为包裹名称加注星标以试图掩盖公司。即使这并没有真正共享任何 IP 或秘密,也比抱歉更安全。
我感谢您提供的任何反馈(好的或坏的)。
附加信息:我为当前使用的每个文件手动导入的文件之一对这些常量有 22 个导入。我想如果数字达到这样的高度,那么也许我应该改用*?还是它仍然有记忆影响?
java - 当导入的类扩展第 3 方库时,Java 导入静态失败
问题设置由三个 java 库组成(为了便于阅读,我删除了所有包名,到处都使用全限定名):
external-lib:提供抽象类
/li>my-lib-A:提供类
external-lib
在 my-lib-A 的类路径中。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 ClassA
ClassA.FOO
问题 2:为什么import static ClassA.FOO
当它从 my-lib-A 扩展另一个类然后扩展 AbstractExternal 时会起作用?
编辑:重要信息:有问题的编译器是Eclipse Compiler for Java (ECJ)。
编辑 2:javac 与 ECJ 同步,并且能够在静态导入失败时编译 ClassB 中的正常导入和类访问。
intellij-idea - IntelliJ Idea 更改粘贴的代码
当使用“静态”导入从另一个类粘贴 Kotlin 代码时,例如:
我希望 IDE 像这样添加导入
但不是那个 IntelliJ Idea(版本 2018.1.1)将粘贴的代码更改为
并添加
那是错误还是功能,我可以更改它吗?
java - 具有相同静态变量名称的静态导入
我正在对 Long 和 Integer 类的成员进行静态导入:
现在,如果我尝试使用这个变量 MAX_VALUE 并打印它,我会得到一个错误:
这可以。为了消除错误,我将不得不删除一个静态导入来解决这种歧义。
我得到的主要问题是,如果我将通配符*
与 Integer 类静态导入一起使用,则该类将被编译而没有错误:
歧义必须仍然存在。为什么编译没有问题?
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 次或更多次之后)。
无论如何,我可能不会真正将这个巨大的导入/导出文件用于生产,但我仍然想解决这个问题。为了好奇。
编辑:
导致:
或者:
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 类中的一个方法。”
java - 在 IntelliJ Idea 中用静态导入替换常量的导入
我有一个代码,其中包含一些格式为 ClassName.CONSTANT_NAME 的常量。我想用 CONSTANT_NAME 快速替换它。但我还没有找到任何有效的方法来做到这一点。每次我想静态导入一些东西时,我必须:
对于每个班级。但是有〜1000个课程
对于许多类,是否有任何快速将导入转换为静态导入的方法?
java - pmd规则:静态导入过多可能导致unitTest中代码乱码不违反
我有一个疑问,我有一个类,我在其中使用不同的静态导入来导入常量,我的问题是我收到错误消息:Too many static imports may lead to messy code
. 但在单元测试中,看起来这不是一个坏习惯。例如在一个单元测试类中,我使用这个导入有任何问题:
相反,在我的课堂上:
这些导入给我带来了麻烦,我收到错误消息:太多静态导入可能导致代码混乱。我不太清楚为什么。
我无法访问 pmd 文件来找出这个问题的真正原因。有什么线索吗?
谢谢!