访问 Ignite 缓存中的底层类型定义
Access underlying type definition in Ignite cache
有什么方法可以获取由其他代码创建的缓存的底层键和值类型定义?此时我只知道缓存名称。我没有关于如何创建缓存的任何其他信息。
IgniteCache<K, V> dataCache = ignite.cache("dataCache");
我需要获取上一行中 K 和 V 的类型。
我将向缓存附加一个 CacheEntryListener,我需要访问缓存值部分中的字段。我该怎么做呢?有什么方法可以从我在侦听器方法中获得的 CacheEntryEvent 事件访问类型信息?
Ignite缓存没有任何底层类型定义,它可以保存任何类型的数据。
泛型只是为了您的方便。
例如,您可以这样做:
IgniteCache<String, String> sCache = ignite.createCache("foo");
sCache.put("1", "2");
IgniteCache<Integer, Integer> iCache = ignite.cache("foo"); // same cache
iCache.put(1, 2);
IgniteCache<Object, Object> oCache = ignite.cache("foo"); // same cache
oCache.get(1); // 2
oCache.get("1"); // "2"
但是,不推荐这样做。
推荐的方法是每个缓存一种类型:您的应用程序逻辑应确保每个命名缓存仅适用于特定数据类型。
有什么方法可以获取由其他代码创建的缓存的底层键和值类型定义?此时我只知道缓存名称。我没有关于如何创建缓存的任何其他信息。
IgniteCache<K, V> dataCache = ignite.cache("dataCache");
我需要获取上一行中 K 和 V 的类型。
我将向缓存附加一个 CacheEntryListener,我需要访问缓存值部分中的字段。我该怎么做呢?有什么方法可以从我在侦听器方法中获得的 CacheEntryEvent 事件访问类型信息?
Ignite缓存没有任何底层类型定义,它可以保存任何类型的数据。 泛型只是为了您的方便。
例如,您可以这样做:
IgniteCache<String, String> sCache = ignite.createCache("foo");
sCache.put("1", "2");
IgniteCache<Integer, Integer> iCache = ignite.cache("foo"); // same cache
iCache.put(1, 2);
IgniteCache<Object, Object> oCache = ignite.cache("foo"); // same cache
oCache.get(1); // 2
oCache.get("1"); // "2"
但是,不推荐这样做。
推荐的方法是每个缓存一种类型:您的应用程序逻辑应确保每个命名缓存仅适用于特定数据类型。