Added utility method to return all declared super class fields
This commit is contained in:
parent
eac41eec12
commit
1bc97d88ee
6 changed files with 179 additions and 60 deletions
57
test/zutil/ClassUtilTest.java
Normal file
57
test/zutil/ClassUtilTest.java
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
package zutil;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class ClassUtilTest extends TestCase {
|
||||
|
||||
public void testGetAllDeclaredFields() {
|
||||
List<Field> fields = ClassUtil.getAllDeclaredFields(TestClass.class);
|
||||
List<String> fieldNames = getFieldNames(fields);
|
||||
|
||||
assertEquals(4, fields.size());
|
||||
assertTrue(fieldNames.contains("superPrivateInt"));
|
||||
assertTrue(fieldNames.contains("superPublicInt"));
|
||||
assertTrue(fieldNames.contains("protectedInt"));
|
||||
assertTrue(fieldNames.contains("publicInt"));
|
||||
|
||||
fields = ClassUtil.getAllDeclaredFields(TestClass.class, TestSuperClass.class);
|
||||
fieldNames = getFieldNames(fields);
|
||||
|
||||
assertEquals(2, fields.size());
|
||||
assertFalse(fieldNames.contains("superPrivateInt"));
|
||||
assertFalse(fieldNames.contains("superPublicInt"));
|
||||
assertTrue(fieldNames.contains("protectedInt"));
|
||||
assertTrue(fieldNames.contains("publicInt"));
|
||||
}
|
||||
|
||||
// ----------------------------------------------------
|
||||
// Utilities
|
||||
// ----------------------------------------------------
|
||||
|
||||
private List<String> getFieldNames(List<Field> fields) {
|
||||
List<String> names = new ArrayList<>();
|
||||
|
||||
for (Field field : fields)
|
||||
names.add(field.getName());
|
||||
return names;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------
|
||||
// Test Classes
|
||||
// ----------------------------------------------------
|
||||
|
||||
public static class TestSuperClass {
|
||||
private int superPrivateInt = 10;
|
||||
public int superPublicInt = 11;
|
||||
}
|
||||
|
||||
public static class TestClass extends TestSuperClass {
|
||||
protected int protectedInt = 20;
|
||||
public int publicInt = 21;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue