如何将类作为第一类对象

时间:2018-03-07 00:34:34

标签: java

这有点难以解释,但代码应该说清楚。我正在通过Java koans(https://github.com/matyb/java-koans)来自学Java - 顺便说一句,我推荐它们很有趣。

无论如何,代码中有一堆断言语句,你必须纠正才能完成koans。目前,下面的两个断言声明都失败了。我在修理第一个时遇到了问题。

实际抛出的是java.util.MissingFormatArgumentException。所以e.getClass()将返回它。但它返回一个实际的Class对象,而不是一个字符串。为了使assert语句成功,我想我需要为java.util.MissingFormatArgumentException获取一个Class对象。但是我不能只创建一个,因为Class类没有公共构造函数(参见https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html)。

任何想法如何解决这个断言?简单地删除它将是作弊。修复String.format()也会作弊。

public void insufficientArgumentsToStringFormatCausesAnError() {
    try {
        String.format("%s %s %s", "a", "b");
        fail("No Exception was thrown!");
    } catch (Exception e) {
        assertEquals(e.getClass(), "");
        assertEquals(e.getMessage(), "");
    }
}

0 个答案:

没有答案