diff --git a/src/org/redkale/util/Creator.java b/src/org/redkale/util/Creator.java index ed82c7c50..3e6c8e030 100644 --- a/src/org/redkale/util/Creator.java +++ b/src/org/redkale/util/Creator.java @@ -88,7 +88,7 @@ public interface Creator { creatorCacheMap.put(Map.Entry.class, new Creator() { @Override @ConstructorParameters({"key", "value"}) - public AbstractMap.SimpleEntry create(Object... params) { + public Map.Entry create(Object... params) { return new AbstractMap.SimpleEntry(params[0], params[1]); } }); @@ -239,6 +239,8 @@ public interface Creator { clazz = (Class) ConcurrentHashMap.class; } else if (Collection.class.isAssignableFrom(clazz) && clazz.isAssignableFrom(ArrayList.class)) { clazz = (Class) ArrayList.class; + } else if (Map.Entry.class.isAssignableFrom(clazz) && (Modifier.isInterface(clazz.getModifiers()) || Modifier.isAbstract(clazz.getModifiers()) || !Modifier.isPublic(clazz.getModifiers()))) { + clazz = (Class) AbstractMap.SimpleEntry.class; } Creator creator = CreatorInner.creatorCacheMap.get(clazz); if (creator != null) return creator;