This commit is contained in:
@@ -264,7 +264,7 @@ public final class CacheMemorySource<V extends Object> extends AbstractService i
|
|||||||
source.hincr("map", "key1");
|
source.hincr("map", "key1");
|
||||||
System.out.println("map.key1 值 : " + source.hgetLong("map", "key1", -1));
|
System.out.println("map.key1 值 : " + source.hgetLong("map", "key1", -1));
|
||||||
source.hmset("map", "key2", "haha", "key3", 333);
|
source.hmset("map", "key2", "haha", "key3", 333);
|
||||||
System.out.println("map.[key1,key2,key3] 值 : " + source.hmget("map", "key1", "key2", "key3"));
|
System.out.println("map.[key1,key2,key3] 值 : " + source.hmget("map", String.class, "key1", "key2", "key3"));
|
||||||
|
|
||||||
System.out.println("------------------------------------");
|
System.out.println("------------------------------------");
|
||||||
source.destroy(null);
|
source.destroy(null);
|
||||||
@@ -441,13 +441,18 @@ public final class CacheMemorySource<V extends Object> extends AbstractService i
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Serializable> hmget(final String key, final String... fields) {
|
public <T> List<T> hmget(final String key, final Type type, final String... fields) {
|
||||||
if (key == null) return null;
|
if (key == null) return null;
|
||||||
CacheEntry entry = container.get(key);
|
CacheEntry entry = container.get(key);
|
||||||
if (entry == null || entry.isExpired() || entry.mapValue == null) return null;
|
if (entry == null || entry.isExpired() || entry.mapValue == null) return null;
|
||||||
List<Serializable> rs = new ArrayList<>(fields.length);
|
List<T> rs = new ArrayList<>(fields.length);
|
||||||
for (int i = 0; i < fields.length; i++) {
|
for (int i = 0; i < fields.length; i++) {
|
||||||
rs.add((Serializable) entry.mapValue.get(fields[i]));
|
Serializable val = (Serializable) entry.mapValue.get(fields[i]);
|
||||||
|
if (type == String.class) {
|
||||||
|
rs.add(val == null ? null : (T)String.valueOf(val));
|
||||||
|
} else {
|
||||||
|
rs.add((T)val);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return rs;
|
return rs;
|
||||||
}
|
}
|
||||||
@@ -602,8 +607,8 @@ public final class CacheMemorySource<V extends Object> extends AbstractService i
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CompletableFuture<List<Serializable>> hmgetAsync(final String key, final String... fields) {
|
public <T> CompletableFuture<List<T>> hmgetAsync(final String key, final Type type, final String... fields) {
|
||||||
return CompletableFuture.supplyAsync(() -> hmget(key, fields), getExecutor());
|
return CompletableFuture.supplyAsync(() -> hmget(key, type, fields), getExecutor());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ public interface CacheSource<V extends Object> {
|
|||||||
|
|
||||||
public void hmset(final String key, final Serializable... values);
|
public void hmset(final String key, final Serializable... values);
|
||||||
|
|
||||||
public List<Serializable> hmget(final String key, final String... fields);
|
public <T> List<T> hmget(final String key, final Type type, final String... fields);
|
||||||
|
|
||||||
public <T> Map<String, T> hmap(final String key, final Type type, int offset, int limit);
|
public <T> Map<String, T> hmap(final String key, final Type type, int offset, int limit);
|
||||||
|
|
||||||
@@ -334,7 +334,7 @@ public interface CacheSource<V extends Object> {
|
|||||||
|
|
||||||
public CompletableFuture<Void> hmsetAsync(final String key, final Serializable... values);
|
public CompletableFuture<Void> hmsetAsync(final String key, final Serializable... values);
|
||||||
|
|
||||||
public CompletableFuture<List<Serializable>> hmgetAsync(final String key, final String... fields);
|
public <T> CompletableFuture<List<T>> hmgetAsync(final String key, final Type type, final String... fields);
|
||||||
|
|
||||||
public <T> CompletableFuture<Map<String, T>> hmapAsync(final String key, final Type type, int offset, int limit);
|
public <T> CompletableFuture<Map<String, T>> hmapAsync(final String key, final Type type, int offset, int limit);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user