diff --git a/Zutil.jar b/Zutil.jar index f7c6289..e719049 100755 Binary files a/Zutil.jar and b/Zutil.jar differ diff --git a/src/zutil/parser/Templator.java b/src/zutil/parser/Templator.java index fffd07f..b42b525 100755 --- a/src/zutil/parser/Templator.java +++ b/src/zutil/parser/Templator.java @@ -394,7 +394,7 @@ public class Templator { else { // Using a loop as the direct lookup throws a exception if no field was found // So this is probably a bit faster - for (Field field : obj.getClass().getDeclaredFields()) { // Only look for public fields + for (Field field : obj.getClass().getFields()) { // Only look for public fields if (field.getName().equals(attrib)) { field.setAccessible(true); return field.get(obj); diff --git a/test/zutil/test/TemplatorTest.java b/test/zutil/test/TemplatorTest.java index 45b8120..fadc1a8 100755 --- a/test/zutil/test/TemplatorTest.java +++ b/test/zutil/test/TemplatorTest.java @@ -38,6 +38,9 @@ public class TemplatorTest { class TestClass{ public String attr; } + class TestSubClass extends TestClass{ + public String subAttr; + } class TestFuncClass{ public boolean isTrue(){ return true; @@ -287,4 +290,15 @@ public class TemplatorTest { assertEquals( "super:sub1,sub2", tmpl.compile()); } + + + @Test + public void subClassTest(){ + Templator tmpl = new Templator("{{test.attr}}:{{test.subAttr}}"); + TestSubClass obj = new TestSubClass(); + obj.attr = "1234"; + obj.subAttr = "5678"; + tmpl.set("test", obj); + assertEquals("1234:5678", tmpl.compile()); + } }