问题标签 [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 - “导入”之后的“静态”修饰符是什么意思?
像这样使用时:
import static com.showboy.Myclass
和有什么区别import com.showboy.Myclass
?
java - 静态导入方法的好用例是什么?
刚刚收到评论说我的方法的静态导入不是一个好主意。静态导入是来自 DA 类的方法,该类主要具有静态方法。因此,在业务逻辑的中间,我有一个显然似乎属于当前类的 da 活动:
审阅者并不热衷于我更改代码,我也没有,但我确实同意他的观点。没有静态导入的一个原因是它在定义方法的位置令人困惑,它不在当前类中,也不在任何超类中,因此识别它的定义需要一些时间(基于 Web 的评论系统没有可点击IDE 之类的链接 :-) 我真的不认为这很重要,静态导入仍然很新,很快我们都会习惯于定位它们。
但另一个我同意的原因是,不合格的方法调用似乎属于当前对象,不应该跳转上下文。但如果它真的属于,扩展那个超类是有意义的。
那么,什么时候静态导入方法才有意义呢?你什么时候做的?你/你喜欢不合格电话的样子吗?
编辑:流行的观点似乎是静态导入方法,如果没有人将它们混淆为当前类的方法。例如来自 java.lang.Math 和 java.awt.Color 的方法。但是如果 abs 和 getAlpha 不是模棱两可的,我不明白为什么 readEmployee 是。与许多编程选择一样,我认为这也是个人喜好。
java - 重载静态导入
在测试类中,我想为自己的重载assertEquals
提供一些不依赖于Object.equals
. 不幸的是,这不起作用,因为一旦我assertEquals
在本地声明我的方法,Java 就再也找不到静态导入org.junit.Assert.*
了。
有没有解决的办法?即有没有办法为静态导入的方法提供额外的重载?(相当明显的解决方案是以不同的方式命名该方法,但该解决方案没有相同的美学吸引力。)
我的测试类文件如下所示:
Error *
是“assertEquals(Bar, Bar)
类型BarTest
中的方法不适用于参数(int, int)
。”</p>
java - 我可以对私有子类进行静态导入吗?
我有一个私有的枚举,不能暴露在课堂之外。无论如何我可以进行该类型的静态导入,这样我就不必每次都输入枚举类型?或者有没有更好的方法来写这个?例子:
java - 静态导入时,如何调用具有类型的通用方法?
我发现您可以调用具有特殊类型的泛型方法,例如:
假设我们有一个通用方法:
我们可以这样称呼它:
但是静态导入的时候怎么调用呢?例如:
这不起作用。
java - 在 Java 中,是否可以(静态)导入构造函数或局部变量?
或者这可以只为方法/字段/枚举常量完成吗?
java - 当类具有与导入的方法同名的方法时,import static 不起作用
我有一个Junit4
静态导入方法的测试用例org.junit.Assert.assertEquals
。
在这个类中,我创建了一个实用方法来断言一些不实现 equals 的复杂内部类(并且也很难实现它)。
我希望代码表现得好像我正在“重载”assertEquals
我正在导入的方法,但看起来我的私有非静态方法正在隐藏静态导入的方法。我也尝试将我的方法变成public
and static
(所有排列)但没有成功 - 我不得不重命名它。
它有这种行为的任何理由?我在文档中找不到对此行为的任何引用。
java - 在java中正确使用静态导入
可能重复:
静态导入方法的好用例是什么?
我很少在 java 中看到这样的静态导入:
import static java.lang.Math.*;
然后您PI
无需调用即可访问Math.PI
。
既然你不经常看到这个,这是否意味着这样做是一个糟糕的设计?
java - 用Java编写一个简单的用于调试的打印方法
在我重新发明轮子之前 - 我希望能够在我的代码中插入调试跟踪,例如,而不是在每个类中say("We are here.");
定义。static void say()
它需要做System.out.println(s)
,并且要全局打开或关闭(doSay(false)
),我还希望它能够识别从中调用它的类(如此处所述)。例如:
MyClass:我们在这里。
Java 是否已经有了这样的工具?
java - 这个网格变量来自哪里?
我正在查看 DynamicReports 的ColumnGridReport 示例。
我想使用经典的代码语法而不是示例中使用的 DSL,这意味着创建
和使用report.addColumn(...)
等等,但我不知道如何为“columnGrid”部分做到这一点:
有一个变量grid
......甚至在哪里初始化?
基本上我想做report.columnGrid(
如何初始化内部部分)
。
如何将其转换为经典语法?