【问题标题】:Getting a methods Return type via reflection通过反射获取方法返回类型
【发布时间】:2011-08-30 13:12:57
【问题描述】:

我从传入对象中获取属性,我将检查它的值。

我想知道是否有一种方法可以通过反射,不仅可以从属性中获取值,还可以获取它的类型?

result instanceof Integer.Class

例如工作?

【问题讨论】:

    标签: java reflection introspection


    【解决方案1】:

    这应该是最安全、最通用的方式。它是 null 安全的,您不需要额外的 != null 检查:

    SomeClass.class.isInstance(result)
    

    参考:

    Class.isInstance(Object)

    【讨论】:

      【解决方案2】:

      您可以使用result.getClass()

      【讨论】:

      • 好吧,从 `Object result = method.invoke(obj, new Object[0]);` 返回时它会如何工作,那肯定不会只返回 Object 类吗?
      • .getClass() 将返回具体类型,因此如果结果是字符串,getClass() 将返回 String.class,如果结果是整数,则 result.getClass() 将返回整数类。
      【解决方案3】:

      没有。

      使用Class.isAssignableFrom()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-18
        • 1970-01-01
        相关资源
        最近更新 更多