diff --git a/event/src/main/java/com/zfoo/event/schema/EventRegisterProcessor.java b/event/src/main/java/com/zfoo/event/schema/EventRegisterProcessor.java
index 85ce068a..38dbfc5a 100644
--- a/event/src/main/java/com/zfoo/event/schema/EventRegisterProcessor.java
+++ b/event/src/main/java/com/zfoo/event/schema/EventRegisterProcessor.java
@@ -61,7 +61,7 @@ public class EventRegisterProcessor implements BeanPostProcessor {
if (!IEvent.class.isAssignableFrom(paramClazzs[0])) {
throw new IllegalArgumentException(StringUtils.format("[class:{}] [method:{}] must have one [IEvent] type parameter!", bean.getClass().getName(), method.getName()));
}
-
+ @SuppressWarnings("unchecked")
var eventClazz = (Class extends IEvent>) paramClazzs[0];
var eventName = eventClazz.getCanonicalName();
var methodName = method.getName();
diff --git a/net/pom.xml b/net/pom.xml
index 65196d07..61f8c106 100644
--- a/net/pom.xml
+++ b/net/pom.xml
@@ -72,14 +72,6 @@
${zfoo.version}
-
-
-
- com.google.code.findbugs
- jsr305
- 3.0.2
-
-
diff --git a/orm/src/main/java/com/zfoo/orm/accessor/MongodbAccessor.java b/orm/src/main/java/com/zfoo/orm/accessor/MongodbAccessor.java
index cb3a3822..07bf0628 100644
--- a/orm/src/main/java/com/zfoo/orm/accessor/MongodbAccessor.java
+++ b/orm/src/main/java/com/zfoo/orm/accessor/MongodbAccessor.java
@@ -40,6 +40,7 @@ public class MongodbAccessor implements IAccessor {
@Override
public > boolean insert(E entity) {
+ @SuppressWarnings("unchecked")
var entityClazz = (Class) entity.getClass();
var collection = OrmContext.getOrmManager().getCollection(entityClazz);
var result = collection.insertOne(entity);
@@ -51,6 +52,7 @@ public class MongodbAccessor implements IAccessor {
if (CollectionUtils.isEmpty(entities)) {
return;
}
+ @SuppressWarnings("unchecked")
var entityClazz = (Class) entities.get(0).getClass();
var collection = OrmContext.getOrmManager().getCollection(entityClazz);
collection.insertMany(entities);
@@ -59,6 +61,7 @@ public class MongodbAccessor implements IAccessor {
@Override
public > boolean update(E entity) {
try {
+ @SuppressWarnings("unchecked")
var entityClazz = (Class) entity.getClass();
var collection = OrmContext.getOrmManager().getCollection(entityClazz);
@@ -83,6 +86,7 @@ public class MongodbAccessor implements IAccessor {
}
try {
+ @SuppressWarnings("unchecked")
var entityClazz = (Class) entities.get(0).getClass();
var collection = OrmContext.getOrmManager().getCollection(entityClazz);
@@ -102,6 +106,7 @@ public class MongodbAccessor implements IAccessor {
@Override
public > boolean delete(E entity) {
+ @SuppressWarnings("unchecked")
var entityClazz = (Class) entity.getClass();
var collection = OrmContext.getOrmManager().getCollection(entityClazz);
var result = collection.deleteOne(eq("_id", entity.id()));
@@ -120,6 +125,7 @@ public class MongodbAccessor implements IAccessor {
if (CollectionUtils.isEmpty(entities)) {
return;
}
+ @SuppressWarnings("unchecked")
var entityClazz = (Class) entities.get(0).getClass();
var collection = OrmContext.getOrmManager().getCollection(entityClazz);
var ids = entities.stream().map(it -> (it).id()).collect(Collectors.toList());
diff --git a/orm/src/main/java/com/zfoo/orm/cache/EntityCache.java b/orm/src/main/java/com/zfoo/orm/cache/EntityCache.java
index bdecded7..52bae755 100644
--- a/orm/src/main/java/com/zfoo/orm/cache/EntityCache.java
+++ b/orm/src/main/java/com/zfoo/orm/cache/EntityCache.java
@@ -71,7 +71,9 @@ public class EntityCache, E extends IEntity> imple
// 缓存失效之前,将数据写入数据库
var entity = pnode.getEntity();
- var collection = OrmContext.getOrmManager().getCollection((Class) entityDef.getClazz());
+ @SuppressWarnings("unchecked")
+ var entityClass = (Class) entityDef.getClazz();
+ var collection = OrmContext.getOrmManager().getCollection(entityClass);
var version = entity.gvs();
entity.svs(version + 1);
@@ -89,11 +91,14 @@ public class EntityCache, E extends IEntity> imple
.build(new CacheLoader>() {
@Override
public @Nullable PNode load(@NonNull PK pk) {
+ @SuppressWarnings("unchecked")
var entity = (E) OrmContext.getAccessor().load(pk, (Class>) entityDef.getClazz());
// 如果数据库中不存在则给一个默认值
if (entity == null) {
- entity = (E) entityDef.newEntity(pk);
+ @SuppressWarnings("unchecked")
+ var newEntity = (E) entityDef.newEntity(pk);
+ return new PNode(newEntity);
}
return new PNode(entity);
@@ -126,6 +131,7 @@ public class EntityCache, E extends IEntity> imple
}
logger.warn("数据库[{}]无法加载缓存[pk:{}],返回默认值", entityDef.getClazz().getSimpleName(), pk);
+ @SuppressWarnings("unchecked")
var entity = (E) entityDef.newEntity(pk);
var pnode = new PNode(entity);
cache.put(pk, pnode);
@@ -209,7 +215,9 @@ public class EntityCache, E extends IEntity> imple
page.setPage(currentPage);
var currentUpdateList = page.currentPageList(updateList);
try {
- var collection = OrmContext.getOrmManager().getCollection((Class) entityDef.getClazz()).withWriteConcern(WriteConcern.ACKNOWLEDGED);
+ @SuppressWarnings("unchecked")
+ var entityClass = (Class) entityDef.getClazz();
+ var collection = OrmContext.getOrmManager().getCollection(entityClass).withWriteConcern(WriteConcern.ACKNOWLEDGED);
var batchList = currentUpdateList.stream()
.map(it -> {
@@ -256,7 +264,9 @@ public class EntityCache, E extends IEntity> imple
var ids = updateList.stream().map(it -> it.id()).collect(Collectors.toList());
try {
- var dbList = OrmContext.getQuery((Class) entityDef.getClazz()).in("_id", ids).queryAll();
+ @SuppressWarnings("unchecked")
+ var entityClass = (Class) entityDef.getClazz();
+ var dbList = OrmContext.getQuery(entityClass).in("_id", ids).queryAll();
var dbMap = dbList.stream().collect(Collectors.toMap(key -> key.id(), value -> value));
for (var entity : updateList) {
var dbEntity = dbMap.get(entity.id());
diff --git a/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java b/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java
index 0d474c61..a7ebed79 100644
--- a/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java
+++ b/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java
@@ -89,6 +89,7 @@ public class OrmManager implements IOrmManager {
var entityDefMap = entityClass();
for (var entityDef : entityDefMap.values()) {
+ @SuppressWarnings("rawtypes")
var entityCaches = new EntityCache(entityDef);
entityCachesMap.put(entityDef.getClazz(), entityCaches);
allEntityCachesUsableMap.put(entityDef.getClazz(), false);
@@ -198,7 +199,8 @@ public class OrmManager implements IOrmManager {
}
Type[] types = ((ParameterizedType) type).getActualTypeArguments();
- Class extends IEntity>> entityClazz = (Class extends IEntity>>) types[1];
+ @SuppressWarnings("unchecked")
+ var entityClazz = (Class extends IEntity>>) types[1];
IEntityCache, ?> entityCaches = entityCachesMap.get(entityClazz);
if (entityCaches == null) {
@@ -234,7 +236,9 @@ public class OrmManager implements IOrmManager {
if (!usable) {
throw new RunException("Orm没有使用[]的EntityCaches,为了节省内存提前释放了它;只有使用EntityCachesInjection注解的Entity才能被动态获取", clazz.getCanonicalName());
}
- return (IEntityCache, E>) entityCachesMap.get(clazz);
+ @SuppressWarnings("unchecked")
+ var entityCache = (IEntityCache, E>) entityCachesMap.get(clazz);
+ return entityCache;
}
@Override
@@ -276,8 +280,10 @@ public class OrmManager implements IOrmManager {
var cacheDefMap = new HashMap>, EntityDef>();
for (var clazz : classSet) {
- var cacheDef = parserEntityDef((Class extends IEntity>>) clazz);
- cacheDefMap.putIfAbsent((Class extends IEntity>>) clazz, cacheDef);
+ @SuppressWarnings("unchecked")
+ var entityClass = (Class extends IEntity>>) clazz;
+ var cacheDef = parserEntityDef(entityClass);
+ cacheDefMap.putIfAbsent(entityClass, cacheDef);
}
return cacheDefMap;
}
diff --git a/orm/src/main/java/com/zfoo/orm/query/MongoQueryBuilder.java b/orm/src/main/java/com/zfoo/orm/query/MongoQueryBuilder.java
index 58e2f4d1..4aa2692f 100644
--- a/orm/src/main/java/com/zfoo/orm/query/MongoQueryBuilder.java
+++ b/orm/src/main/java/com/zfoo/orm/query/MongoQueryBuilder.java
@@ -109,7 +109,9 @@ public class MongoQueryBuilder> implements IQueryBuilder
result.forEach(new Consumer>() {
@Override
public void accept(IEntity> entity) {
- list.add((E) entity);
+ @SuppressWarnings("unchecked")
+ var e = (E) entity;
+ list.add(e);
}
});
return list;
@@ -128,7 +130,9 @@ public class MongoQueryBuilder> implements IQueryBuilder
.forEach(new Consumer>() {
@Override
public void accept(IEntity> entity) {
- list.add((E) entity);
+ @SuppressWarnings("unchecked")
+ var e = (E) entity;
+ list.add(e);
}
});
diff --git a/orm/src/test/java/com/zfoo/orm/cache/EntityCachesTest.java b/orm/src/test/java/com/zfoo/orm/cache/EntityCachesTest.java
index 19cbbb66..3fcbc0d8 100644
--- a/orm/src/test/java/com/zfoo/orm/cache/EntityCachesTest.java
+++ b/orm/src/test/java/com/zfoo/orm/cache/EntityCachesTest.java
@@ -36,6 +36,7 @@ public class EntityCachesTest {
var context = new ClassPathXmlApplicationContext("application.xml");
// 动态去拿到UserEntity的EntityCaches
+ @SuppressWarnings("unchecked")
var userEntityCaches = (IEntityCache) OrmContext.getOrmManager().getEntityCaches(UserEntity.class);
for (var i = 1; i <= 10; i++) {
diff --git a/orm/src/test/java/com/zfoo/orm/client/SingleMongoTest.java b/orm/src/test/java/com/zfoo/orm/client/SingleMongoTest.java
index 96eca93f..8c10d16e 100644
--- a/orm/src/test/java/com/zfoo/orm/client/SingleMongoTest.java
+++ b/orm/src/test/java/com/zfoo/orm/client/SingleMongoTest.java
@@ -148,22 +148,6 @@ public class SingleMongoTest {
collection.find().forEach(doc -> System.out.println(doc.toJson()));
}
- @Test
- public void mapReduceTest() {
- String mapFunction = "" +
- "function() { " +
- "emit(this.name, { count: 1 });" +
- "}";
- String reduceFunction = "" +
- "function(key, values) {" +
- "var reduced = { name:key, count:0 };" +
- "values.forEach(function(value){ reduced.count += value.count; }); " +
- "return reduced;" +
- "}";
- MongoCollection collection = mongodb.getCollection("student");
- var iterable = collection.mapReduce(mapFunction, reduceFunction);
- iterable.forEach((Consumer super Document>) document -> System.out.println(document));
- }
// ******************************************************************************************************
diff --git a/protocol/pom.xml b/protocol/pom.xml
index 82f8de32..49ed8db1 100644
--- a/protocol/pom.xml
+++ b/protocol/pom.xml
@@ -115,6 +115,14 @@
+
+
+
+ com.google.code.findbugs
+ jsr305
+ 3.0.2
+
+
com.esotericsoftware
kryo
diff --git a/protocol/src/main/java/com/zfoo/protocol/collection/ArrayUtils.java b/protocol/src/main/java/com/zfoo/protocol/collection/ArrayUtils.java
index 7265a97b..2882df11 100644
--- a/protocol/src/main/java/com/zfoo/protocol/collection/ArrayUtils.java
+++ b/protocol/src/main/java/com/zfoo/protocol/collection/ArrayUtils.java
@@ -368,7 +368,9 @@ public abstract class ArrayUtils {
var length = list.size();
var objectArray = Array.newInstance(clazz, length);
- return (T[]) copy(list.toArray(), objectArray, length);
+ @SuppressWarnings("unchecked")
+ var copy = (T[]) copy(list.toArray(), objectArray, length);
+ return copy;
}
@@ -452,7 +454,9 @@ public abstract class ArrayUtils {
AssertionUtils.notNull(clazz);
var length = source.length;
var target = Array.newInstance(clazz, length);
- return (T[]) copy(source, target, length);
+ @SuppressWarnings("unchecked")
+ var copy = (T[]) copy(source, target, length);
+ return copy;
}
private static Object copy(Object source, Object target, int length) {
diff --git a/protocol/src/main/java/com/zfoo/protocol/collection/CollectionUtils.java b/protocol/src/main/java/com/zfoo/protocol/collection/CollectionUtils.java
index 8719f478..0f0fe71c 100644
--- a/protocol/src/main/java/com/zfoo/protocol/collection/CollectionUtils.java
+++ b/protocol/src/main/java/com/zfoo/protocol/collection/CollectionUtils.java
@@ -234,52 +234,6 @@ public abstract class CollectionUtils {
}
- /**
- * list合并
- *
- * @param exclusive 元素是否是独占的,也就是说是否可以重复
- * @param pairs 需要被合并的pairs集合,第一个参数是步数,第二个参数是集合
- * @return 返回合并后的list
- */
- public static List listJoinList(boolean exclusive, Pair>... pairs) {
- return listJoinList(exclusive, List.of(pairs));
- }
-
- public static List listJoinList(boolean exclusive, List>> pairs) {
- var iteratorList = new ArrayList>();
- var iteratorMap = new HashMap, Iterator>();
- var stepMap = new HashMap, Integer>();
- for (var pair : pairs) {
- var step = pair.getKey();
- var list = pair.getValue();
- AssertionUtils.ge1(step);
- if (isNotEmpty(list)) {
- var iterator = list.iterator();
- iteratorList.add(list);
- iteratorMap.put(list, iterator);
- stepMap.put(list, step);
- }
- }
-
- var result = new ArrayList();
-
- while (iteratorMap.values().stream().anyMatch(it -> it.hasNext())) {
- for (var list : iteratorList) {
- var iterator = iteratorMap.get(list);
- var step = stepMap.get(list);
- for (var i = 0; i < step && iterator.hasNext(); i++) {
- var element = iterator.next();
- if (exclusive && result.contains(element)) {
- i--;
- continue;
- }
- result.add(element);
- }
- }
- }
-
- return result;
- }
/**
* 获取集合的最后几个元素
diff --git a/protocol/src/main/java/com/zfoo/protocol/collection/concurrent/ConcurrentArrayList.java b/protocol/src/main/java/com/zfoo/protocol/collection/concurrent/ConcurrentArrayList.java
index 3fec3c7e..e8f5f03f 100644
--- a/protocol/src/main/java/com/zfoo/protocol/collection/concurrent/ConcurrentArrayList.java
+++ b/protocol/src/main/java/com/zfoo/protocol/collection/concurrent/ConcurrentArrayList.java
@@ -49,6 +49,7 @@ public class ConcurrentArrayList implements List {
public List clearAndReturn() {
lock.lock();
try {
+ @SuppressWarnings("unchecked")
var newList = (ArrayList) list.clone();
list.clear();
return newList;
@@ -71,6 +72,7 @@ public class ConcurrentArrayList implements List {
public Iterator iterator() {
lock.lock();
try {
+ @SuppressWarnings("unchecked")
var newList = (ArrayList) list.clone();
return newList.iterator();
} finally {
@@ -237,6 +239,7 @@ public class ConcurrentArrayList implements List {
public ListIterator listIterator() {
lock.lock();
try {
+ @SuppressWarnings("unchecked")
var newList = (ArrayList) list.clone();
return newList.listIterator();
} finally {
@@ -248,6 +251,7 @@ public class ConcurrentArrayList implements List {
public ListIterator listIterator(int index) {
lock.lock();
try {
+ @SuppressWarnings("unchecked")
var newList = (ArrayList) list.clone();
return newList.listIterator(index);
} finally {
diff --git a/protocol/src/main/java/com/zfoo/protocol/collection/lpmap/FileChannelMap.java b/protocol/src/main/java/com/zfoo/protocol/collection/lpmap/FileChannelMap.java
index e062f476..7398937f 100644
--- a/protocol/src/main/java/com/zfoo/protocol/collection/lpmap/FileChannelMap.java
+++ b/protocol/src/main/java/com/zfoo/protocol/collection/lpmap/FileChannelMap.java
@@ -123,7 +123,9 @@ public class FileChannelMap implements LpMap, Closeable {
dbBuffer.writeBytes(dbFileChannel, packetPosition, (int) packetSize);
var packet = protocolRegistration.read(dbBuffer);
- return (V) packet;
+ @SuppressWarnings("unchecked")
+ var p = (V) packet;
+ return p;
} catch (Exception e) {
return null;
}
diff --git a/protocol/src/main/java/com/zfoo/protocol/collection/lpmap/FileHeapMap.java b/protocol/src/main/java/com/zfoo/protocol/collection/lpmap/FileHeapMap.java
index 96b9235f..610aa558 100644
--- a/protocol/src/main/java/com/zfoo/protocol/collection/lpmap/FileHeapMap.java
+++ b/protocol/src/main/java/com/zfoo/protocol/collection/lpmap/FileHeapMap.java
@@ -110,6 +110,7 @@ public class FileHeapMap implements LpMap {
var size = ByteBufUtils.readLong(buffer);
for (var i = 0; i < size; i++) {
var key = ByteBufUtils.readLong(buffer);
+ @SuppressWarnings("unchecked")
var value = (V) protocolRegistration.read(buffer);
put(key, value);
}
diff --git a/protocol/src/test/java/com/zfoo/protocol/util/CollectionUtilsTest.java b/protocol/src/test/java/com/zfoo/protocol/util/CollectionUtilsTest.java
index 5f38aacb..b9871e63 100644
--- a/protocol/src/test/java/com/zfoo/protocol/util/CollectionUtilsTest.java
+++ b/protocol/src/test/java/com/zfoo/protocol/util/CollectionUtilsTest.java
@@ -13,7 +13,6 @@
package com.zfoo.protocol.util;
import com.zfoo.protocol.collection.CollectionUtils;
-import com.zfoo.protocol.model.Pair;
import org.junit.Assert;
import org.junit.Test;
@@ -49,19 +48,6 @@ public class CollectionUtilsTest {
Assert.assertArrayEquals(c.toArray(), a.toArray());
}
- @Test
- public void listJoinListTest() {
- var a = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9);
- var b = List.of(11, 22, 33, 44, 55);
- var c = List.of(1, 2, 3, 4, 5, 6);
-
- var d = CollectionUtils.listJoinList(true, new Pair<>(2, a), new Pair<>(2, b), new Pair<>(2, c));
- Assert.assertArrayEquals(d.toArray(), List.of(1, 2, 11, 22, 3, 4, 5, 6, 33, 44, 7, 8, 55, 9).toArray());
-
- var e = CollectionUtils.listJoinList(false, new Pair<>(2, a), new Pair<>(2, b), new Pair<>(2, c));
- Assert.assertArrayEquals(e.toArray(), List.of(1, 2, 11, 22, 1, 2, 3, 4, 33, 44, 3, 4, 5, 6, 55, 5, 6, 7, 8, 9).toArray());
- }
-
@Test
public void subListLastTest() {
var list = List.of(1, 2, 3, 4, 5);
diff --git a/storage/src/main/java/com/zfoo/storage/manager/StorageInt.java b/storage/src/main/java/com/zfoo/storage/manager/StorageInt.java
index d04631cc..39a36c38 100644
--- a/storage/src/main/java/com/zfoo/storage/manager/StorageInt.java
+++ b/storage/src/main/java/com/zfoo/storage/manager/StorageInt.java
@@ -29,7 +29,9 @@ public class StorageInt extends StorageObject {
public StorageInt(StorageObject storage) {
this.dataMap = new IntObjectHashMap(storage.size());
- this.dataMap.putAll((Map extends Integer, ? extends V>) storage.getData());
+ @SuppressWarnings("unchecked")
+ var map = (Map extends Integer, ? extends V>) storage.getData();
+ this.dataMap.putAll(map);
super.indexMap = storage.indexMap;
super.uniqueIndexMap = storage.uniqueIndexMap;
super.clazz = storage.clazz;
@@ -89,7 +91,9 @@ public class StorageInt extends StorageObject {
@Override
public Map getData() {
- return (Map) Collections.unmodifiableMap(dataMap);
+ @SuppressWarnings("unchecked")
+ var map = (Map) Collections.unmodifiableMap(dataMap);
+ return map;
}
}
diff --git a/storage/src/main/java/com/zfoo/storage/manager/StorageLong.java b/storage/src/main/java/com/zfoo/storage/manager/StorageLong.java
index 66c46045..caf2d361 100644
--- a/storage/src/main/java/com/zfoo/storage/manager/StorageLong.java
+++ b/storage/src/main/java/com/zfoo/storage/manager/StorageLong.java
@@ -29,7 +29,9 @@ public class StorageLong extends StorageObject {
public StorageLong(StorageObject storage) {
this.dataMap = new LongObjectHashMap(storage.size());
- this.dataMap.putAll((Map extends Long, ? extends V>) storage.getData());
+ @SuppressWarnings("unchecked")
+ var map = (Map extends Long, ? extends V>) storage.getData();
+ this.dataMap.putAll(map);
super.indexMap = storage.indexMap;
super.uniqueIndexMap = storage.uniqueIndexMap;
super.clazz = storage.clazz;
@@ -89,7 +91,9 @@ public class StorageLong extends StorageObject {
@Override
public Map getData() {
- return (Map) Collections.unmodifiableMap(dataMap);
+ @SuppressWarnings("unchecked")
+ var map = (Map) Collections.unmodifiableMap(dataMap);
+ return map;
}
}
diff --git a/storage/src/main/java/com/zfoo/storage/manager/StorageObject.java b/storage/src/main/java/com/zfoo/storage/manager/StorageObject.java
index cc4a0fb4..3bd0683c 100644
--- a/storage/src/main/java/com/zfoo/storage/manager/StorageObject.java
+++ b/storage/src/main/java/com/zfoo/storage/manager/StorageObject.java
@@ -78,12 +78,16 @@ public class StorageObject implements IStorage {
@Override
public boolean contain(int key) {
- return contain((K) Integer.valueOf(key));
+ @SuppressWarnings("unchecked")
+ var k = (K) Integer.valueOf(key);
+ return contain(k);
}
@Override
public boolean contain(long key) {
- return contain((K) Long.valueOf(key));
+ @SuppressWarnings("unchecked")
+ var k = (K) Long.valueOf(key);
+ return contain(k);
}
@Override
@@ -95,12 +99,16 @@ public class StorageObject implements IStorage {
@Override
public V get(int id) {
- return get((K) Integer.valueOf(id));
+ @SuppressWarnings("unchecked")
+ var key = (K) Integer.valueOf(id);
+ return get(key);
}
@Override
public V get(long id) {
- return get((K) Long.valueOf(id));
+ @SuppressWarnings("unchecked")
+ var key = (K) Long.valueOf(id);
+ return get(key);
}
@Override
@@ -164,6 +172,7 @@ public class StorageObject implements IStorage {
}
public V put(Object value) {
+ @SuppressWarnings("unchecked")
var key = (K) ReflectionUtils.getField(idDef.getField(), value);
if (key == null) {
@@ -175,22 +184,24 @@ public class StorageObject implements IStorage {
}
// 添加资源
- var result = dataMap.put(key, (V) value);
+ @SuppressWarnings("unchecked")
+ var v = (V) value;
+ var result = dataMap.put(key, v);
// 添加索引
for (var def : indexDefMap.values()) {
// 使用field的名称作为索引的名称
var indexKey = def.getField().getName();
- var indexValue = ReflectionUtils.getField(def.getField(), value);
+ var indexValue = ReflectionUtils.getField(def.getField(), v);
if (def.isUnique()) {// 唯一索引
var index = uniqueIndexMap.computeIfAbsent(indexKey, k -> new HashMap<>());
- if (index.put(indexValue, (V) value) != null) {
+ if (index.put(indexValue, v) != null) {
throw new RuntimeException(StringUtils.format("Duplicate unique index [index:{}][value:{}] of static resource [class:{}]", indexKey, indexValue, clazz.getName()));
}
} else {// 不是唯一索引
var index = indexMap.computeIfAbsent(indexKey, k -> new HashMap<>());
var list = index.computeIfAbsent(indexValue, k -> new ArrayList());
- list.add((V) value);
+ list.add(v);
}
}
return result;
diff --git a/storage/src/test/java/com/zfoo/storage/conversion/ConversionTest.java b/storage/src/test/java/com/zfoo/storage/conversion/ConversionTest.java
index a5e25ca5..4c21fd53 100644
--- a/storage/src/test/java/com/zfoo/storage/conversion/ConversionTest.java
+++ b/storage/src/test/java/com/zfoo/storage/conversion/ConversionTest.java
@@ -63,11 +63,9 @@ public class ConversionTest {
ConversionService conversionService = csfb.getObject();
//Json to Map
String str = "{\"1\":1,\"2\":2,\"3\":3}";
-
- Map map = new HashMap();
-
// 注意:第3个参数不能写成TypeDescriptor.valueOf(map.getClass()) 而是要明确指定Map的key和value的类型
- map = (Map) conversionService.convert(str, TypeDescriptor.valueOf(String.class), TypeDescriptor.map(map.getClass(), TypeDescriptor.valueOf(String.class), TypeDescriptor.valueOf(Integer.class)));
+ @SuppressWarnings("unchecked")
+ var map = (Map) conversionService.convert(str, TypeDescriptor.valueOf(String.class), TypeDescriptor.map(HashMap.class, TypeDescriptor.valueOf(String.class), TypeDescriptor.valueOf(Integer.class)));
Assert.assertEquals(3, map.size());
}
diff --git a/storage/src/test/java/com/zfoo/storage/export/ExportBinaryTesting.java b/storage/src/test/java/com/zfoo/storage/export/ExportBinaryTesting.java
index e63ab74b..a4ed9757 100644
--- a/storage/src/test/java/com/zfoo/storage/export/ExportBinaryTesting.java
+++ b/storage/src/test/java/com/zfoo/storage/export/ExportBinaryTesting.java
@@ -103,7 +103,7 @@ public class ExportBinaryTesting {
ProtocolManager.write(buffer, resourceData);
var bytes = ByteBufUtils.readAllBytes(buffer);
FileUtils.writeInputStreamToFile(new File("D:/github/godot-bird/binary_data.cfg"), new ByteArrayInputStream(bytes));
-
+ @SuppressWarnings("unchecked")
var storage = (StorageObject) storageManager.getStorage(StudentResource.class);
for (StudentResource resource : storage.getAll()) {
System.out.println(JsonUtils.object2String(resource));