为什么在没有Assert.assertTrue()的情况下调用assertTrue()?

时间:2018-01-23 07:17:55

标签: java junit assert

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!

非常感谢。

1 个答案:

答案 0 :(得分:4)

转到源代码文件的顶部并查看导入。你应该看到这样的东西:

import static some.packages.Assert.assertTrue;
// or
import static some.packages.Assert.*;

这是static导入。基本上它的作用是让你的指定成员好像他们是你班级中的静态成员一样,所以你可以在没有班级名称的情况下调用他们!

这也可以通过Logger完成!

import static whatever.packages.your.logger.is.in.Logger.log;