methods - Class Name for Java anonymous class -


this question has answer here:

class a{   public void test(){    b b = new b();    system.out.println( "class name: " + b.createclassc().getclass() );  }  }  class b{    public c createclassc(){      c c = new c(){        @override        public boolean equals( object other ){          return true;        }          };     } }  class c{    int val = 8; } 

output: class name: package.name.here.b

can 1 tell me why anonymous class types gives enclosing class in getclass() method? causes .equals() on object c fail time. understanding since getclass gives enclosing class name, overridden equals never invoked?

output class name: class nz.test.anon.b$1 dollar sign important. b$1 means first anonymous class under b. b$2 second , on.

also equals method being called

system.out.println( "this true: " + b.createclassc().equals(b) ); system.out.println( "and this: " + b.createclassc().equals(this) ); 

Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -