One annoyance in Java is having to do instanceof checks on multiple lines. e.g. if (object instanceof Foo) { Foo foo = (Foo)object; foo.foo(); }if (object instanceof Foo) { Foo foo = (Foo)object; foo.foo(); } While this is often a sign of a design failure, there are times when instanceof checks are required often due… Read more »