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) 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> entityClazz = (Class>) types[1]; + @SuppressWarnings("unchecked") + var entityClazz = (Class>) 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) entityCachesMap.get(clazz); + @SuppressWarnings("unchecked") + var entityCache = (IEntityCache) 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>) clazz); - cacheDefMap.putIfAbsent((Class>) clazz, cacheDef); + @SuppressWarnings("unchecked") + var entityClass = (Class>) 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) 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) storage.getData()); + @SuppressWarnings("unchecked") + var map = (Map) 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) storage.getData()); + @SuppressWarnings("unchecked") + var map = (Map) 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));