由於性能方面的原因,我有一個存儲Map
的類,其關鍵是Class<?>
,它的值是該類字段的函數。根據調用對象的類型,代碼執行過程中會填充該映射。以上是一個概括/簡化收聽Java中的類重裝
public class Cache {
private static final Map<Class<?>, String> fieldsList = ...;
//Synchronization omitted for brevity
public String getHqlFor(Class<?> entity){
if (!fieldsList.containsKey(entity))
fieldsList.put(entity,createHql(entity));
return fieldsList.get(entity);
}
}
在開發過程中,由於JRebel的幫助下,我經常通過改變整個性能或只是他們的名字進行修改類。我可以繼續發展就好。但是,如果我已經將一個值放入緩存中,它將永遠失效。
我在這裏問的是,是否有可能攔截類路徑中的類發生更改的事件。非常廣泛...但我的具體問題很簡單:因爲我只有在開發過程中有這樣的需求,所以我只想在我的類路徑更改中刪除該緩存,以防任何類。
我該如何做到這一點?我不需要做任何事情比攔截事件特殊,只是擦拭緩存
你可以使用自定義Classloader來做到這一點嗎? – daniu