为什么不用 Assert.assertTrue() 就可以调用 assertTrue()?
Why assertTrue() can be called without Assert.assertTrue()?
assertTrue() 方法似乎是一个非常普通的静态方法,例如:
public static void assertTrue() {
...
}
但是当它被调用时,它看起来很奇怪:
Assert.assertTrue(condition); //Should look like this.
assertTrue(condition); //But in fact it looks like this.
为什么?
如果我想做同样的事情,我应该怎么做?
public static class Logger() {
public static void log() {
...
}
}
Logger.log(someMessage); //Not cool
log(someMessage); //cool!
非常感谢。
转到源代码文件的顶部并查看导入。你应该看到这样的东西:
import static some.packages.Assert.assertTrue;
// or
import static some.packages.Assert.*;
这是 static
导入。基本上它的作用是使您指定的成员就好像它们是您 class 中的静态成员一样,因此您可以在没有 class 名称的情况下调用它们!
这也可以用 Logger
来完成!
import static whatever.packages.your.logger.is.in.Logger.log;
assertTrue() 方法似乎是一个非常普通的静态方法,例如:
public static void assertTrue() {
...
}
但是当它被调用时,它看起来很奇怪:
Assert.assertTrue(condition); //Should look like this.
assertTrue(condition); //But in fact it looks like this.
为什么? 如果我想做同样的事情,我应该怎么做?
public static class Logger() {
public static void log() {
...
}
}
Logger.log(someMessage); //Not cool
log(someMessage); //cool!
非常感谢。
转到源代码文件的顶部并查看导入。你应该看到这样的东西:
import static some.packages.Assert.assertTrue;
// or
import static some.packages.Assert.*;
这是 static
导入。基本上它的作用是使您指定的成员就好像它们是您 class 中的静态成员一样,因此您可以在没有 class 名称的情况下调用它们!
这也可以用 Logger
来完成!
import static whatever.packages.your.logger.is.in.Logger.log;