【问题标题】:Java instanceof with changing objects具有变化对象的 Java instanceof
【发布时间】:2012-09-27 18:56:36
【问题描述】:

我需要一个可以传递参数的方法,我假设该参数是一个类(虽然不确定),并且在该方法中,instanceof 将用于检查 x 是否是传递的类的实例。

我该怎么做?我尝试了一些方法,但都没有成功。

【问题讨论】:

    标签: java dynamic instanceof


    【解决方案1】:

    这个怎么样:

    public boolean checker(Object obj) {
        return obj instanceof SomeClass;
    }
    

    或者如果SomeClass需要作为参数:

    public boolean checker(Object obj, Class someClass) {
        return someClass.isInstance(obj);
    }
    

    或者如果您希望实例为someClass 而不是someClass 的子类的实例:

    public boolean checker(Object obj, Class someClass) {
        return someClass.equals(obj.getClass());
    }
    

    【讨论】:

    • 为了完整性,objsomeclass 都必须检查 null 与否
    • @HussainAl-Mutawa - 我不同意。在没有规范的情况下,正确的行为是在使用错误(即null)参数调用方法时发生 NullPointerException。
    • 注意 2nd 和 3d 变体之间的区别:3d 仅在 obj 的类型严格为 someclass 时返回 true,而 2nd 也在 obj.getClass() 扩展或实现 someclass 时返回 true .
    • @AlexeiKaigorodov - 是的......我就是这么说的。
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2014-05-25
      • 2021-07-12
      • 2013-09-04
      • 2013-03-06
      • 2012-07-21
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多