import java.util.Vector;
import static org.testng.Assert.assertEquals;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class BuildHierarchyTest {
@DataProvider(name = "class-hierarchies")
public Object[][] dataValues(){
return new Object[][]{
{Vector.class, new String[] {"java.util.AbstractList",
"java.util.AbstractCollection"}},
{String.class, new String[] {}}
};
}
public void verifyHierarchies(Class clzz, String[] names) throws Exception{
Hierarchy hier = HierarchyBuilder.buildHierarchy(clzz);
assertEquals(hier.getHierarchyClassNames(), names, "values were not equal");
}
}
至此,我還是沒有發現缺陷,但一些代碼問題卻困擾著我。如果有人不經意地為 Class 參數傳入一個 null 值會怎么樣呢?清單 1 中第 4 行的 clzz.getSuperclass() 調用會拋出一個 NullPointerException,是這樣嗎?