This commit is contained in:
Redkale
2019-11-02 14:20:07 +08:00
parent 40629ed7b9
commit 9ecc1d8f19

View File

@@ -88,7 +88,7 @@ public interface Creator<T> {
creatorCacheMap.put(Map.Entry.class, new Creator<Map.Entry>() { creatorCacheMap.put(Map.Entry.class, new Creator<Map.Entry>() {
@Override @Override
@ConstructorParameters({"key", "value"}) @ConstructorParameters({"key", "value"})
public AbstractMap.SimpleEntry create(Object... params) { public Map.Entry create(Object... params) {
return new AbstractMap.SimpleEntry(params[0], params[1]); return new AbstractMap.SimpleEntry(params[0], params[1]);
} }
}); });
@@ -239,6 +239,8 @@ public interface Creator<T> {
clazz = (Class<T>) ConcurrentHashMap.class; clazz = (Class<T>) ConcurrentHashMap.class;
} else if (Collection.class.isAssignableFrom(clazz) && clazz.isAssignableFrom(ArrayList.class)) { } else if (Collection.class.isAssignableFrom(clazz) && clazz.isAssignableFrom(ArrayList.class)) {
clazz = (Class<T>) ArrayList.class; clazz = (Class<T>) ArrayList.class;
} else if (Map.Entry.class.isAssignableFrom(clazz) && (Modifier.isInterface(clazz.getModifiers()) || Modifier.isAbstract(clazz.getModifiers()) || !Modifier.isPublic(clazz.getModifiers()))) {
clazz = (Class<T>) AbstractMap.SimpleEntry.class;
} }
Creator creator = CreatorInner.creatorCacheMap.get(clazz); Creator creator = CreatorInner.creatorCacheMap.get(clazz);
if (creator != null) return creator; if (creator != null) return creator;