在Java中使用Class.getMethods()是一项繁重的操作吗?

在Java中使用Class.getMethods()是一项繁重的操作吗?,java,reflection,Java,Reflection,我有一个关于java“类”API性能的问题。我有一个要求,即我有数据库值,可以像/car或/cars[0]/make。对于这些数据库值中的每一个,我必须查看我正在处理的特定类是否有一个setter方法,用于/car类似setCar(或用于/cars[0]/makeasetCars方法)。目前,我只是迭代类中所有声明的方法(使用getMethods),然后执行一些字符串检查,以查看使用的方法名称是否与数据库值匹配。当我这样做时,我不会调用任何方法。尽管这是在使用方法API,但它实际上并没有进行任何

我有一个关于java“类”API性能的问题。我有一个要求,即我有数据库值,可以像
/car
/cars[0]/make
。对于这些数据库值中的每一个,我必须查看我正在处理的特定类是否有一个setter方法,用于
/car
类似
setCar
(或用于
/cars[0]/make
a
setCars
方法)。目前,我只是迭代类中所有声明的方法(使用
getMethods
),然后执行一些字符串检查,以查看使用的方法名称是否与数据库值匹配。当我这样做时,我不会调用任何方法。尽管这是在使用
方法
API,但它实际上并没有进行任何方法调用。就java反射而言,这仍然是一项繁重的操作吗?解释一下,这个java反射正在使用吗

是的,您正在通过调用getMethods使用反射。如果您关心性能,您可以使用java探查器来分析代码,如

我认为这有代码味道。我会看一下你的代码设计。如果你这样做,我会看一下缓存方法名。@tjg184我们使用了一个反射缓存实用程序类,它缓存方法名,但是我必须从数据库值中提取可能的方法名,即在值/cars[0]/make的情况下,我必须从中提取“cars”(使用字符串maniuplation)并将其传递给API,API将查找与“cars”类似的“getCars”对应的方法名