如何判断两个Java 类型之间的兼容性问题?不考虑数据是否丢失的情况比如:int 和 long 是兼容的,编译器不报错,即使long 到 int 会产生数据丢失又如:class A {}  class B extends A {}  如何判断A和B是否兼容,即A a = new B();是否编译器不报错呢?
或者  class C {}  class D {}  C a = new D(); 编译器直接报错。其他例子等等,在此不一一举例子和字节码相关,请达人相助!司令,等你呢~

解决方案 »

  1.   

    if(a instanceof b){
      a... //那么我们就可以知道b可以兼容 a
    }
      

  2.   

    你们说的方法只针对程序员已知了两个类型,要么基本类型int or float,要么自定义的类如A或者B那要是我得到是两个字符串信息“type1”和“type2”,如何判断字符串中的那串字符代表的类型是否兼容呢?instanceof 此时,应该无效!请司令或者其他版主回复~ 
      

  3.   

    Yes...Java has this function to meet your need...