[WEEX-216][android] WXAnimation Fix Memory Leak and performance improve add more support convert args
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/c3bd4623 Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/c3bd4623 Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/c3bd4623 Branch: refs/heads/master Commit: c3bd46238fb3b08e8c70c1efb2944df79ced4af2 Parents: 4dded27 Author: jianbai.gbj <jianbai....@alibaba-inc.com> Authored: Fri Feb 23 17:07:41 2018 +0800 Committer: jianbai.gbj <jianbai....@alibaba-inc.com> Committed: Fri Feb 23 17:07:41 2018 +0800 ---------------------------------------------------------------------- .../main/java/com/taobao/weex/utils/WXReflectionUtils.java | 6 ++++-- .../java/com/taobao/weex/utils/WXReflectionUtilsTest.java | 9 +++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c3bd4623/android/sdk/src/main/java/com/taobao/weex/utils/WXReflectionUtils.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/utils/WXReflectionUtils.java b/android/sdk/src/main/java/com/taobao/weex/utils/WXReflectionUtils.java index 1e424e5..a3dff5e 100644 --- a/android/sdk/src/main/java/com/taobao/weex/utils/WXReflectionUtils.java +++ b/android/sdk/src/main/java/com/taobao/weex/utils/WXReflectionUtils.java @@ -35,8 +35,10 @@ public class WXReflectionUtils { if(value.getClass() == paramClazz){ return value; } - if(value.getClass().isAssignableFrom(value.getClass())){ - return value; + if(paramClazz instanceof Class){ + if( ((Class<?>) paramClazz).isAssignableFrom(value.getClass())) { + return value; + } } } if (paramClazz == String.class) { http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c3bd4623/android/sdk/src/test/java/com/taobao/weex/utils/WXReflectionUtilsTest.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/test/java/com/taobao/weex/utils/WXReflectionUtilsTest.java b/android/sdk/src/test/java/com/taobao/weex/utils/WXReflectionUtilsTest.java index 18df379..58cfc46 100644 --- a/android/sdk/src/test/java/com/taobao/weex/utils/WXReflectionUtilsTest.java +++ b/android/sdk/src/test/java/com/taobao/weex/utils/WXReflectionUtilsTest.java @@ -47,9 +47,14 @@ public class WXReflectionUtilsTest { @Test public void testParseArgument() throws Exception { + + Object value = WXReflectionUtils.parseArgument(String.class,"dkdkdkdk"); assertTrue(value instanceof String); + value = WXReflectionUtils.parseArgument(int.class,123444); + assertTrue(value instanceof Integer); + value = WXReflectionUtils.parseArgument(long.class,"123444"); assertTrue(value instanceof Long); @@ -70,6 +75,10 @@ public class WXReflectionUtilsTest { JSONObject j = new JSONObject(); j.put("a","b"); j.put("c",23); + + value = WXReflectionUtils.parseArgument(Map.class,j); + assertTrue(value == j); + value = WXReflectionUtils.parseArgument(String.class,j); assertTrue(value instanceof String);