gpt4 book ai didi

java - 如何使用反射比较类?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:15:53 25 4
gpt4 key购买 nike

我正在尝试使用反射来确定一个类的类类型,然后做一些具体的事情。例如,如果类是 double 型,则使用 double 型特定方法。

我正在尝试使用


if(f.getClass() == Double.class)

但是,我遇到编译器错误:

“不兼容的操作数类型 Class 和 Class

执行此操作的正确方法是什么?

编辑:更清楚

f 是 Field 类型。循环反射得到


(Field f : instance.getDeclaredFields())

最佳答案

有趣的错误消息(我不知道 '==' 运算符会检查那些)。但基于它,我怀疑你的比较是错误的:你试图查看 Field 类(理论上它的父类(super class),但仅在理论上——Field 是最终的)是否与 Double.class 相同,它不能.

所以:是的,比较应该有效,前提是你给出正确的论据。所以我怀疑你想这样做:

if (f.getType() == Double.class)

相反。鉴于 Double 是最后一个类,这应该行得通。否则“isAssignableFrom”会更合适。

关于java - 如何使用反射比较类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/825654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com