确定静态方法是否纯粹是功能性的

One*_*ree 9 java reflection purely-functional

给定一个java.lang.reflect.Method对象,无论如何都要确定该方法是否是纯粹的功能(即,给定相同的输入,它将始终产生相同的输出并且它是无状态的.换句话说,该功能不依赖于其环境)?

Joa*_*uer 9

不,没有办法做到这一点.

反射不允许您检查方法背后的实际代码.

即使在可能的情况下,实际的分析可能是......棘手的,至少可以说.


Sot*_*lis 7

没有办法用反射或任何其他机制来做到这一点.

开发人员知道该方法是否有效.例如,Spring有一个@Cacheable注释,它向应用程序提供该方法功能的提示,因此可以缓存给定参数集的结果.(Spring会将您的对象包装在提供缓存行为的代理中.)