【问题标题】:RuntimeExtension.class -- What does the ".class" mean? [duplicate]RuntimeExtension.class——“.class”是什么意思? [复制]
【发布时间】:2014-12-03 16:20:50
【问题描述】:

我已经阅读了 Junit ExpectedException 类的文档,在我研究过的所有示例中,.expect() 方法的参数似乎都被奇怪地实现了。当您传入预期的异常类型时,它有一个 .class 扩展名,这似乎不是任何类型的方法。

有人可以解释一下这个语法吗?谢谢你。示例代码如下:

public ExpectedException thrown = ExpectedException.none();

public void testPlusException() {
    thrown.expect(RuntimeException.class);
    Vector testVector = vector1.plus(vector3);

}

【问题讨论】:

    标签: java junit


    【解决方案1】:

    在一个类型上调用 .class 可以获得特定类型的类对象。您可以在此处阅读有关详细信息的更多信息。

    http://docs.oracle.com/javase/tutorial/reflect/class/classNew.html

    【讨论】:

    • 谢谢。我知道 .getClass() 但不知道这种方式。
    【解决方案2】:

    虽然Object 类的Java 文档中没有提到,但从Object 派生的所有类都有一个public static Class<T> class 成员,用于存储所述对象的运行时类型。

    这也是在对象上调用 getClass() 时返回的内容,请记住 Java 中的所有方法都是 virtual

    【讨论】:

    • 从技术上讲,它不是会员。您不能在可以使用其他静态成员的每个语法中都使用class,并且ClassgetFields() 方法不会将class 作为成员之一返回。
    • 另外它也不是Object 的一部分,因为你可以做boolean.class
    猜你喜欢
    • 1970-01-01
    • 2016-03-28
    • 2012-11-28
    • 2011-06-06
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多