When should we use instanceof and when not


I have gone through various articles ,but i still do not know why instanceof should not used.kindlylet me know your thoughts.

I find a need to use instanceof hints at bad design. It's a sure sign that a big, complex switch-style construct will follow. Most other times I see it used, we should use polymorphism rather than instanceof. See the Strategy pattern. (relevant examples of use)

The only time I find I need to use it is when implementing equals(Object o).