我必须在我的项目中使用成堆的反射,如getDeclaredFields或isAnnotationPresent之类的东西,我应该使用ehcache来缓存结果吗?它会有帮助吗?
在添加缓存之前,您需要确定是否需要它。首先,可以缓存多少以及可以重用缓存对象多少次。如果东西可以被多次重用,并且创建它们的成本很高,那么就有理由使用缓存。
其次,首先是否存在性能问题?换句话说,编写没有缓存的代码并运行它。如果代码很慢(您需要定义"慢"对您来说意味着什么),那么缓存又有一个参数。但如果代码运行得很快,那么添加缓存可能不会有什么不同。
正如Drekka提到的,我确实会首先测量。这是你应该考虑的一般规则。现在,关于这里的问题,您应该知道java.lang.Class类实际上已经为这类调用实现了缓存机制。根据具体的访问模式,您很可能无法通过自己缓存结果来获得任何性能。