猿问

Class<?>和Class有什么区别

看SystemBarTintManager源码,其中有

static {


    Method methodGetter = null;

    try {

        **Class<?> sysClass = Class.forName("android.os.SystemProperties");**

        methodGetter = sysClass.getDeclaredMethod("get", String.class);

        sIsMiuiV6 = "V6".equals((String) methodGetter.invoke(sysClass, "ro.miui.ui.version.name"));

    } catch (Exception e) {

        e.printStackTrace();

    } finally {

        if (methodGetter != null) {

            try {

                sNavBarOverride = (String) methodGetter.invoke(null, "qemu.hw.mainkeys");

            } catch (Exception e) {

                e.printStackTrace();

                sNavBarOverride = null;

            }

        }

    }

}

其中

Class<?> sysClass = Class.forName("android.os.SystemProperties");


这里为什么用泛型,直接用Class行吗?


慕莱坞森
浏览 1236回答 1
1回答

holdtom

Class<?>&nbsp;中的&nbsp;?&nbsp;是通配符,其实就是表示任意符合泛类定义条件的类,和直接使用&nbsp;Class&nbsp;效果基本一致,但是这样写更加规范,在某些类型转换时可以避免不必要的&nbsp;unchecked&nbsp;错误。
随时随地看视频慕课网APP

相关分类

Java
我要回答