zoukankan      html  css  js  c++  java
  • When to use Class.isInstance() & when to use instanceof operator?

    I think the official documentation gives you the answer to this one (albeit in a fairly nonspecific way):

    This method is the dynamic equivalent of the Java language instanceof operator.

    I take that to mean that isInstance() is primarily intended for use in code dealing with type reflection at runtime. In particular, I would say that it exists to handle cases where you might not know in advance the type(s) of class(es) that you want to check for membership of in advance (rare though those cases probably are).

    For instance, you can use it to write a method that checks to see if two arbitrarily typed objects are assignment-compatible, like:

    publicboolean areObjectsAssignable(Object left,Object right){return left.getClass().isInstance(right);}

    In general, I'd say that using instanceof should be preferred whenever you know the kind of class you want to check against in advance. In those very rare cases where you do not, use isInstance() instead.

    For instanceof you need to know the exact class at compile time.

    if(foo instanceofThisClassIKnowRightNow)...

    For isInstance the class is decided at run time. (late binding) e.g.

    if(someObject.getClass().isInstance(foo))...
  • 相关阅读:
    TensorFlow中使用GPU
    C++内存管理与注意事项
    深入理解Transformer及其源码
    Dropout原理与实现
    指针生成网络(Pointer-Generator-Network)原理与实战
    深度学习中的优化算法总结
    Hadoop伪分布式搭建
    集成学习总结
    模型评估
    基于Spring AOP实现的权限控制
  • 原文地址:https://www.cnblogs.com/savagemorgan/p/3721940.html
Copyright © 2011-2022 走看看