Java 类.isAssignableFrom(类cls)的建议备选方案是什么?

Java 类.isAssignableFrom(类cls)的建议备选方案是什么?,java,performance,reflection,Java,Performance,Reflection,目前我正在对一段代码进行分析。在分析过程中,我发现这个方法调用 Class<T>.isAssignableFrom(Class<?> cls) 占用了相当多的时间 因为这是一个来自反射的方法,所以与普通的关键字或方法调用相比,它需要很多时间。我想知道这个方法调用是否有一些好的替代方法 [一] t检查类类型 通过方法参数传入到 查看类型是否与特定的匹配 资格 对我来说,这意味着应该需要方法参数来实现特定接口或从特定类继承。请记住,接口可以是一个类似的标记。我意识到更改AP

目前我正在对一段代码进行分析。在分析过程中,我发现这个方法调用

Class<T>.isAssignableFrom(Class<?> cls)
占用了相当多的时间

因为这是一个来自反射的方法,所以与普通的关键字或方法调用相比,它需要很多时间。我想知道这个方法调用是否有一些好的替代方法

[一] t检查类类型 通过方法参数传入到 查看类型是否与特定的匹配 资格

对我来说,这意味着应该需要方法参数来实现特定接口或从特定类继承。请记住,接口可以是一个类似的标记。我意识到更改API可能不是一种选择

[一] t检查类类型 通过方法参数传入到 查看类型是否与特定的匹配 资格


对我来说,这意味着应该需要方法参数来实现特定接口或从特定类继承。请记住,接口可以是一个类似的标记。我意识到更改API可能不是一个选项。

如果您有一个要检索其类的对象,可以用以下内容替换:

obj instanceof ClassName

但我不会说它更快。实际上,我怀疑这会导致程序执行出现任何问题。不要过度优化。

如果您有一个要检索其类的对象,可以将其替换为:

obj instanceof ClassName

但我不会说它更快。实际上,我怀疑这会导致程序执行出现任何问题。不要过度优化。

我不知道这是否会影响您,但我认为值得注意的是,在Java5的早期,isAssignableFrom已经纠正了这些问题。我找不到该修复程序是否被后移植到Java5,但它肯定被移植到了Java6中

此外,还指出Class.isInstance和Class.isAssignableFrom的性能与instanceof相同


因此,如果您使用的是Java 6或更高版本,似乎没有其他类可供选择。isAssignableFrom将比现有的更快。

我不知道这是否会影响您,但我认为值得注意的是,在Java 5的早期,isAssignableFrom已经纠正了这些问题。我找不到该修复程序是否被后移植到Java5,但它肯定被移植到了Java6中

此外,还指出Class.isInstance和Class.isAssignableFrom的性能与instanceof相同


因此,如果您使用的是Java 6或更高版本,似乎没有Class.isAssignableFrom的替代方案,它将比现有的更快。

为什么不详细解释一下如何使用此方法,以及为什么静态类型检查不起作用。实际上,它的使用方式多种多样。其中一种方法是,它检查通过方法参数传入的类类型,以查看该类型是否符合某些限定条件。我想知道我是否必须重写方法签名并更改所有相关的调用。你使用泛型吗?泛型通配符?为什么不详细解释一下这个方法是如何使用的,以及为什么静态类型检查不起作用。实际上,它有多种用途。其中一种方法是,它检查通过方法参数传入的类类型,以查看该类型是否符合某些限定条件。我想知道我是否必须重写方法签名并更改所有相关的调用。你使用泛型吗?通用通配符?+1表示怀疑这是否真的有区别。我们在这里谈了多少时间?+1表示怀疑这是否真的有区别。我们在这里谈了多少时间?