Java:验证类是否存在

时间:2014-01-30 17:25:44

标签: java class junit

我认为这将是一个微不足道的问题,但我似乎无法在Java中找到类似于class_exists的方法。我正在编写一个测试来验证是否定义了类名。如何使用jUnit在Java中复制它?

<?php

$this->assertTrue(class_exists('Car'), 'Should have a class called "Car"');

TestCar.java

import org.junit.Assert;

import org.junit.Test;

public class TestCar {

    @Test
    public void testCarExists() {
            try {
                Class.forName("Car");
            } catch(ClassNotFoundException e) {
                Assert.fail("Should create a class called 'Car'.");
            }
     }
}

Car.java

public class Car {
    // just enough :-)
}

1 个答案:

答案 0 :(得分:5)

Java的一个优点是你有一个编译器,所以通常这是一个非问题。如果你正确编译你的代码,然后由于某种原因,从运行时环境中删除一个必需的jar文件,你将得到一个java.lang.ClassNotFoundException,这样就足够了。

如果您想要超级安全,可以尝试拨打Class.forName

@Test
public void testClassExists {
    try {
        Class.forName("org.mypackage.Car");
    } catch (ClassNotFoundException e) {
        Assert.fail("should have a class called Car");
    }
}