Java 类#可通过Object和double从中指定

Java 类#可通过Object和double从中指定,java,reflection,Java,Reflection,我在看电视 为什么Object.class.isAssignableFrom(double.class):打印到false,而f打印到100.0 public class IsAssignableFrom { public static void main(String[] args) { double d = 100; Object o = null; System.out.println("Object.class.isAssigna

我在看电视

为什么
Object.class.isAssignableFrom(double.class):
打印到
false
,而
f
打印到
100.0

public class IsAssignableFrom {
    public static void main(String[] args) {
        double d = 100;
        Object o = null;

        System.out.println("Object.class.isAssignableFrom(double.class): " + 
            Object.class.isAssignableFrom(double.class));

        Object f = d;   
        System.out.println("f: " + f);
    }
}
让我们运行测试

>javac IsAssignableFrom.java && java -cp . IsAssignableFrom
f: 100.0
Object.class.IsAssignableFrom(d): false

double
是一种基本类型。基本类型没有通用的超类型。换句话说,
Object.class
并不表示
double.class
的超类


装箱转换可应用于
double
类型的值,并将其转换为
double
类型的值,该类型是
对象的子类型。这就是为什么
d
可以分配给
f

能够使用
对象f=d
并不意味着
对象
double
的超类型(这是
的结果可从
确认),它只是意味着自动装箱将添加必要的代码,以便为您将
double
转换为
double