Check if a object is a instance of a class (but not a instance of its subclass)

前端 未结 7 1525
天命终不由人
天命终不由人 2020-12-03 04:08

For this example:

public class Foo{}

public class Bar extends Foo{}

....

void myMethod(Foo qux){
   if (checkInstance(qux,Foo.class)){
     ....
   }
}
         


        
7条回答
  •  再見小時候
    2020-12-03 04:52

        package com.instance;
    
        public class Foo {
            public void instance(Foo f) {
                System.out.println("---------");
                System.out.println(f.getClass());
                System.out.println(getClass());
                if (f.getClass() == getClass()) {
                    System.out.println("Yes");
                } else {
                    System.out.println("No");
                }
            }
        }
    
    
    package com.instance;
    
    public class Main {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            Foo f1 = new Foo();
            Foo f2 = new Foo();
            Foo f3 = new Bar();
            f1.instance(f1);
            f1.instance(f2);
            f1.instance(f3);
        }
    
    }
    

提交回复
热议问题