Merge "Remove raw usage of Class and Constructor types" into androidx-master-dev
diff --git a/animation/src/main/java/androidx/animation/FloatKeyframeSet.java b/animation/src/main/java/androidx/animation/FloatKeyframeSet.java
index 2040d61..67e5232 100644
--- a/animation/src/main/java/androidx/animation/FloatKeyframeSet.java
+++ b/animation/src/main/java/androidx/animation/FloatKeyframeSet.java
@@ -106,7 +106,7 @@
     }
 
     @Override
-    public Class getType() {
+    public Class<Float> getType() {
         return Float.class;
     }
 }
diff --git a/animation/src/main/java/androidx/animation/IntKeyframeSet.java b/animation/src/main/java/androidx/animation/IntKeyframeSet.java
index db9747d..d871b83 100644
--- a/animation/src/main/java/androidx/animation/IntKeyframeSet.java
+++ b/animation/src/main/java/androidx/animation/IntKeyframeSet.java
@@ -109,7 +109,7 @@
     }
 
     @Override
-    public Class getType() {
+    public Class<Integer> getType() {
         return Integer.class;
     }
 }
diff --git a/animation/src/main/java/androidx/animation/Keyframe.java b/animation/src/main/java/androidx/animation/Keyframe.java
index eae709b..9f9c279 100644
--- a/animation/src/main/java/androidx/animation/Keyframe.java
+++ b/animation/src/main/java/androidx/animation/Keyframe.java
@@ -63,7 +63,7 @@
      * The type of the value in this Keyframe. This type is determined at construction time,
      * based on the type of the <code>value</code> object passed into the constructor.
      */
-    Class mValueType;
+    Class<?> mValueType;
 
     /**
      * The optional interpolator for the interval preceding this keyframe. A null interpolator
diff --git a/animation/src/main/java/androidx/animation/Keyframes.java b/animation/src/main/java/androidx/animation/Keyframes.java
index 1328cac..f4181e3 100644
--- a/animation/src/main/java/androidx/animation/Keyframes.java
+++ b/animation/src/main/java/androidx/animation/Keyframes.java
@@ -36,7 +36,7 @@
     /**
      * @return The value type contained by the contained Keyframes.
      */
-    Class getType();
+    Class<?> getType();
 
     /**
      * Gets the animated value, given the elapsed fraction of the animation (interpolated by the
diff --git a/animation/src/main/java/androidx/animation/PathKeyframes.java b/animation/src/main/java/androidx/animation/PathKeyframes.java
index 57c4aa6..a5c32c1 100644
--- a/animation/src/main/java/androidx/animation/PathKeyframes.java
+++ b/animation/src/main/java/androidx/animation/PathKeyframes.java
@@ -122,7 +122,7 @@
     }
 
     @Override
-    public Class getType() {
+    public Class<PointF> getType() {
         return PointF.class;
     }
 
@@ -231,7 +231,7 @@
     abstract static class IntKeyframesBase extends SimpleKeyframes<Integer>
             implements IntKeyframes {
         @Override
-        public Class<?> getType() {
+        public Class<Integer> getType() {
             return Integer.class;
         }
 
@@ -244,7 +244,7 @@
     abstract static class FloatKeyframesBase extends SimpleKeyframes<Float>
             implements FloatKeyframes {
         @Override
-        public Class<?> getType() {
+        public Class<Float> getType() {
             return Float.class;
         }
 
diff --git a/animation/src/main/java/androidx/animation/PropertyValuesHolder.java b/animation/src/main/java/androidx/animation/PropertyValuesHolder.java
index 05d1df7..442481b 100644
--- a/animation/src/main/java/androidx/animation/PropertyValuesHolder.java
+++ b/animation/src/main/java/androidx/animation/PropertyValuesHolder.java
@@ -67,7 +67,7 @@
      * The type of values supplied. This information is used both in deriving the setter/getter
      * functions and in deriving the type of TypeEvaluator.
      */
-    Class mValueType;
+    Class<?> mValueType;
 
     /**
      * The set of keyframes (time/value pairs) that define this animation.
@@ -86,20 +86,20 @@
     // of primitive types (Float vs. float). But most likely, the setter/getter functions
     // will take primitive types instead.
     // So we supply an ordered array of other types to try before giving up.
-    private static final Class[] FLOAT_VARIANTS = {float.class, Float.class, double.class,
+    private static final Class<?>[] FLOAT_VARIANTS = {float.class, Float.class, double.class,
             int.class, Double.class, Integer.class};
-    private static final Class[] INTEGER_VARIANTS = {int.class, Integer.class, float.class,
+    private static final Class<?>[] INTEGER_VARIANTS = {int.class, Integer.class, float.class,
             double.class, Float.class, Double.class};
-    private static final Class[] DOUBLE_VARIANTS = {double.class, Double.class, float.class,
+    private static final Class<?>[] DOUBLE_VARIANTS = {double.class, Double.class, float.class,
             int.class, Float.class, Integer.class};
 
     // These maps hold all property entries for a particular class. This map
     // is used to speed up property/setter/getter lookups for a given class/property
     // combination. No need to use reflection on the combination more than once.
-    static final HashMap<Class, HashMap<String, Method>> sSetterPropertyMap =
-            new HashMap<Class, HashMap<String, Method>>();
-    private static final HashMap<Class, HashMap<String, Method>> sGetterPropertyMap =
-            new HashMap<Class, HashMap<String, Method>>();
+    static final HashMap<Class<?>, HashMap<String, Method>> sSetterPropertyMap =
+            new HashMap<>();
+    private static final HashMap<Class<?>, HashMap<String, Method>> sGetterPropertyMap =
+            new HashMap<>();
 
     // Used to pass single value to varargs parameter in setter invocation
     final Object[] mTmpValueArray = new Object[1];
@@ -723,11 +723,11 @@
      * value types used on the setter.
      * @return Method the method associated with mPropertyName.
      */
-    private Method getPropertyFunction(Class targetClass, String prefix, Class valueType) {
+    private Method getPropertyFunction(Class<?> targetClass, String prefix, Class<?> valueType) {
         // TODO: faster implementation...
         Method returnVal = null;
         String methodName = getMethodName(prefix, mPropertyName);
-        Class[] args = null;
+        Class<?>[] args = null;
         if (valueType == null) {
             try {
                 returnVal = targetClass.getMethod(methodName, args);
@@ -735,8 +735,8 @@
                 // Swallow the error, log it later
             }
         } else {
-            args = new Class[1];
-            Class[] typeVariants;
+            args = new Class<?>[1];
+            Class<?>[] typeVariants;
             if (valueType.equals(Float.class)) {
                 typeVariants = FLOAT_VARIANTS;
             } else if (valueType.equals(Integer.class)) {
@@ -744,10 +744,10 @@
             } else if (valueType.equals(Double.class)) {
                 typeVariants = DOUBLE_VARIANTS;
             } else {
-                typeVariants = new Class[1];
+                typeVariants = new Class<?>[1];
                 typeVariants[0] = valueType;
             }
-            for (Class typeVariant : typeVariants) {
+            for (Class<?> typeVariant : typeVariants) {
                 args[0] = typeVariant;
                 try {
                     returnVal = targetClass.getMethod(methodName, args);
@@ -783,9 +783,9 @@
      * @param valueType The type of parameter passed into the method (null for getter).
      * @return Method the method associated with mPropertyName.
      */
-    private Method setupSetterOrGetter(Class targetClass,
-            HashMap<Class, HashMap<String, Method>> propertyMapMap,
-            String prefix, Class valueType) {
+    private Method setupSetterOrGetter(Class<?> targetClass,
+            HashMap<Class<?>, HashMap<String, Method>> propertyMapMap,
+            String prefix, Class<?> valueType) {
         Method setterOrGetter = null;
         synchronized (propertyMapMap) {
             // Have to lock property map prior to reading it, to guard against
@@ -815,7 +815,7 @@
      * Utility function to get the setter from targetClass
      * @param targetClass The Class on which the requested method should exist.
      */
-    void setupSetter(Class targetClass) {
+    void setupSetter(Class<?> targetClass) {
         Class<?> propertyType = mConverter == null ? mValueType : mConverter.getTargetType();
         mSetter = setupSetterOrGetter(targetClass, sSetterPropertyMap, "set", propertyType);
     }
@@ -823,7 +823,7 @@
     /**
      * Utility function to get the getter from targetClass
      */
-    private void setupGetter(Class targetClass) {
+    private void setupGetter(Class<?> targetClass) {
         mGetter = setupSetterOrGetter(targetClass, sGetterPropertyMap, "get", null);
     }
 
@@ -863,7 +863,7 @@
         }
         // We can't just say 'else' here because the catch statement sets mProperty to null.
         if (mProperty == null) {
-            Class targetClass = target.getClass();
+            Class<?> targetClass = target.getClass();
             if (mSetter == null) {
                 setupSetter(targetClass);
             }
@@ -919,7 +919,7 @@
         } else {
             try {
                 if (mGetter == null) {
-                    Class targetClass = target.getClass();
+                    Class<?> targetClass = target.getClass();
                     setupGetter(targetClass);
                     if (mGetter == null) {
                         // Already logged the error - just return to avoid NPE
@@ -1102,7 +1102,7 @@
         return mAnimatedValue;
     }
 
-    Class getValueType() {
+    Class<?> getValueType() {
         return mValueType;
     }
 
@@ -1387,7 +1387,7 @@
         }
 
         @Override
-        void setupSetter(Class targetClass) {
+        void setupSetter(Class<?> targetClass) {
             synchronized (sSetterPropertyMap) {
                 // Have to lock property map prior to reading it, to guard against
                 // another thread putting something in there after we've checked it
@@ -1405,7 +1405,7 @@
                     calculateValue(0f);
                     float[] values = (float[]) getAnimatedValue();
                     int numParams = values.length;
-                    Class[] parameterTypes = new Class[values.length];
+                    Class<?>[] parameterTypes = new Class<?>[values.length];
                     for (int i = 0; i < numParams; i++) {
                         parameterTypes[i] = float.class;
                     }
@@ -1486,7 +1486,7 @@
         }
 
         @Override
-        void setupSetter(Class targetClass) {
+        void setupSetter(Class<?> targetClass) {
             synchronized (sSetterPropertyMap) {
                 // Have to lock property map prior to reading it, to guard against
                 // another thread putting something in there after we've checked it
@@ -1504,7 +1504,7 @@
                     calculateValue(0f);
                     int[] values = (int[]) getAnimatedValue();
                     int numParams = values.length;
-                    Class[] parameterTypes = new Class[values.length];
+                    Class<?>[] parameterTypes = new Class<?>[values.length];
                     for (int i = 0; i < numParams; i++) {
                         parameterTypes[i] = int.class;
                     }
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatInflaterPassTest.java b/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatInflaterPassTest.java
index 87563b7..9b89afd 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatInflaterPassTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/app/AppCompatInflaterPassTest.java
@@ -50,7 +50,7 @@
     @Rule
     public final ActivityTestRule<A> mActivityTestRule;
 
-    public AppCompatInflaterPassTest(Class clazz) {
+    public AppCompatInflaterPassTest(Class<A> clazz) {
         mActivityTestRule = new ActivityTestRule<A>(clazz);
     }
 
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseAutoSizeTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseAutoSizeTest.java
index 6e7adf2..5028d1c 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseAutoSizeTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseAutoSizeTest.java
@@ -68,7 +68,7 @@
     protected Instrumentation mInstrumentation;
     protected ViewGroup mContainer;
 
-    public AppCompatBaseAutoSizeTest(Class clazz) {
+    public AppCompatBaseAutoSizeTest(Class<A> clazz) {
         mActivityTestRule = new ActivityTestRule<A>(clazz);
     }
 
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseImageViewTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseImageViewTest.java
index bcd8c08..78aa513 100755
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseImageViewTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseImageViewTest.java
@@ -46,8 +46,9 @@
  */
 public abstract class AppCompatBaseImageViewTest<T extends ImageView>
         extends AppCompatBaseViewTest<BaseTestActivity, T> {
-    public AppCompatBaseImageViewTest(Class clazz) {
-        super(clazz);
+    @SuppressWarnings("unchecked")
+    public AppCompatBaseImageViewTest(Class<? extends BaseTestActivity> clazz) {
+        super((Class<BaseTestActivity>) clazz);
     }
 
     private void verifyImageSourceIsColoredAs(String description, @NonNull ImageView imageView,
diff --git a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseViewTest.java b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseViewTest.java
index aa56c6b..aa8b0e6 100644
--- a/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseViewTest.java
+++ b/appcompat/src/androidTest/java/androidx/appcompat/widget/AppCompatBaseViewTest.java
@@ -70,7 +70,7 @@
     protected A mActivity;
     protected Resources mResources;
 
-    public AppCompatBaseViewTest(Class clazz) {
+    public AppCompatBaseViewTest(Class<A> clazz) {
         mActivityTestRule = new ActivityTestRule<A>(clazz);
     }
 
diff --git a/appcompat/src/main/java/androidx/appcompat/app/AppCompatViewInflater.java b/appcompat/src/main/java/androidx/appcompat/app/AppCompatViewInflater.java
index 22d39cd..00945d3 100644
--- a/appcompat/src/main/java/androidx/appcompat/app/AppCompatViewInflater.java
+++ b/appcompat/src/main/java/androidx/appcompat/app/AppCompatViewInflater.java
@@ -60,7 +60,7 @@
  */
 public class AppCompatViewInflater {
 
-    private static final Class<?>[] sConstructorSignature = new Class[]{
+    private static final Class<?>[] sConstructorSignature = new Class<?>[]{
             Context.class, AttributeSet.class};
     private static final int[] sOnClickAttrs = new int[]{android.R.attr.onClick};
 
diff --git a/appcompat/src/main/java/androidx/appcompat/app/ResourcesFlusher.java b/appcompat/src/main/java/androidx/appcompat/app/ResourcesFlusher.java
index c9a0189..375273b 100644
--- a/appcompat/src/main/java/androidx/appcompat/app/ResourcesFlusher.java
+++ b/appcompat/src/main/java/androidx/appcompat/app/ResourcesFlusher.java
@@ -33,7 +33,7 @@
     private static Field sDrawableCacheField;
     private static boolean sDrawableCacheFieldFetched;
 
-    private static Class sThemedResourceCacheClazz;
+    private static Class<?> sThemedResourceCacheClazz;
     private static boolean sThemedResourceCacheClazzFetched;
 
     private static Field sThemedResourceCache_mUnthemedEntriesField;
diff --git a/appcompat/src/main/java/androidx/appcompat/view/SupportMenuInflater.java b/appcompat/src/main/java/androidx/appcompat/view/SupportMenuInflater.java
index be540bf..c56c1056 100644
--- a/appcompat/src/main/java/androidx/appcompat/view/SupportMenuInflater.java
+++ b/appcompat/src/main/java/androidx/appcompat/view/SupportMenuInflater.java
@@ -80,7 +80,7 @@
 
     static final int NO_ID = 0;
 
-    static final Class<?>[] ACTION_VIEW_CONSTRUCTOR_SIGNATURE = new Class[] {Context.class};
+    static final Class<?>[] ACTION_VIEW_CONSTRUCTOR_SIGNATURE = new Class<?>[] {Context.class};
 
     static final Class<?>[] ACTION_PROVIDER_CONSTRUCTOR_SIGNATURE =
             ACTION_VIEW_CONSTRUCTOR_SIGNATURE;
@@ -239,7 +239,7 @@
 
     private static class InflatedOnMenuItemClickListener
             implements MenuItem.OnMenuItemClickListener {
-        private static final Class<?>[] PARAM_TYPES = new Class[] { MenuItem.class };
+        private static final Class<?>[] PARAM_TYPES = new Class<?>[] { MenuItem.class };
 
         private Object mRealOwner;
         private Method mMethod;
diff --git a/browser/src/androidTest/java/androidx/browser/customtabs/EnableComponentsTestRule.java b/browser/src/androidTest/java/androidx/browser/customtabs/EnableComponentsTestRule.java
index d8946af..639f1ad 100644
--- a/browser/src/androidTest/java/androidx/browser/customtabs/EnableComponentsTestRule.java
+++ b/browser/src/androidTest/java/androidx/browser/customtabs/EnableComponentsTestRule.java
@@ -35,16 +35,16 @@
  * each test and not let components for one test interfere with another.
  */
 public class EnableComponentsTestRule extends TestWatcher {
-    private final List<Class> mComponents;
+    private final List<Class<?>> mComponents;
 
     /**
      * Creates this TestRule which will enable the given components and disable them after the
      * tests.
      */
-    public EnableComponentsTestRule(Class ... components) {
+    public EnableComponentsTestRule(Class<?>... components) {
         // TODO(peconn): Figure out some generic bounds that allows a list of Classes that are
         // either Services or Actvities.
-        mComponents = new ArrayList(Arrays.asList(components));
+        mComponents = new ArrayList<>(Arrays.asList(components));
     }
 
     @Override
@@ -60,25 +60,25 @@
     /**
      * Manually disables an already enabled component.
      */
-    public void manuallyDisable(Class clazz) {
+    public void manuallyDisable(Class<?> clazz) {
         setComponentEnabled(clazz, false);
     }
 
     /**
      * Manually enables a component. Will be disabled when test finishes.
      */
-    public void manuallyEnable(Class clazz) {
+    public void manuallyEnable(Class<?> clazz) {
         setComponentEnabled(clazz, true);
         mComponents.add(clazz);
     }
 
     private void setEnabled(boolean enabled) {
-        for (Class component : mComponents) {
+        for (Class<?> component : mComponents) {
             setComponentEnabled(component, enabled);
         }
     }
 
-    private static void setComponentEnabled(Class clazz, boolean enabled) {
+    private static void setComponentEnabled(Class<?> clazz, boolean enabled) {
         Context context = ApplicationProvider.getApplicationContext();
         PackageManager pm = context.getPackageManager();
         ComponentName name = new ComponentName(context, clazz);
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditableFactoryTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditableFactoryTest.java
index 3f9aafe..9f290b3 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditableFactoryTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/EmojiEditableFactoryTest.java
@@ -76,7 +76,7 @@
     @SuppressLint("PrivateApi")
     @Test
     public void testNewEditable_returnsEmojiSpannableIfWatcherClassExists() {
-        Class clazz = null;
+        Class<?> clazz = null;
         try {
             String className = "android.text.DynamicLayout$ChangeWatcher";
             clazz = Class.forName(className, false, getClass().getClassLoader());
diff --git a/emoji/core/src/androidTest/java/androidx/emoji/widget/SpannableBuilderTest.java b/emoji/core/src/androidTest/java/androidx/emoji/widget/SpannableBuilderTest.java
index 0c27ee6..159da80 100644
--- a/emoji/core/src/androidTest/java/androidx/emoji/widget/SpannableBuilderTest.java
+++ b/emoji/core/src/androidTest/java/androidx/emoji/widget/SpannableBuilderTest.java
@@ -52,7 +52,7 @@
 public class SpannableBuilderTest {
 
     private TextWatcher mWatcher;
-    private Class mClass;
+    private Class<?> mClass;
 
     @Before
     public void setup() {
diff --git a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentTransaction.java b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentTransaction.java
index fa39163..af91cf4 100644
--- a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentTransaction.java
+++ b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentTransaction.java
@@ -158,7 +158,7 @@
     }
 
     void doAddOp(int containerViewId, Fragment fragment, @Nullable String tag, int opcmd) {
-        final Class fragmentClass = fragment.getClass();
+        final Class<?> fragmentClass = fragment.getClass();
         final int modifiers = fragmentClass.getModifiers();
         if (fragmentClass.isAnonymousClass() || !Modifier.isPublic(modifiers)
                 || (fragmentClass.isMemberClass() && !Modifier.isStatic(modifiers))) {
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/DetailsFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/DetailsFragmentTest.java
index 02dae70..6b30cf5 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/DetailsFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/DetailsFragmentTest.java
@@ -275,7 +275,7 @@
         }
     }
 
-    private void navigateBetweenRowsAndVideoUsingRequestFocusInternal(Class cls)
+    private void navigateBetweenRowsAndVideoUsingRequestFocusInternal(Class<?> cls)
             throws Throwable {
         SingleFragmentTestActivity activity = launchAndWaitActivity(cls,
                 new Options().uiVisibility(
@@ -339,7 +339,7 @@
         navigateBetweenRowsAndVideoUsingRequestFocusInternal(DetailsFragmentWithVideo2.class);
     }
 
-    private void navigateBetweenRowsAndVideoUsingDPADInternal(Class cls) throws Throwable {
+    private void navigateBetweenRowsAndVideoUsingDPADInternal(Class<?> cls) throws Throwable {
         SingleFragmentTestActivity activity = launchAndWaitActivity(cls,
                 new Options().uiVisibility(
                         View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN), 0);
@@ -410,7 +410,7 @@
         }
     }
 
-    private void fragmentOnStartWithVideoInternal(Class cls) throws Throwable {
+    private void fragmentOnStartWithVideoInternal(Class<?> cls) throws Throwable {
         final SingleFragmentTestActivity activity = launchAndWaitActivity(cls,
                 new Options().uiVisibility(
                         View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN), 0);
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/DetailsSupportFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/DetailsSupportFragmentTest.java
index 2c00338..b7dfc34 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/DetailsSupportFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/DetailsSupportFragmentTest.java
@@ -272,7 +272,7 @@
         }
     }
 
-    private void navigateBetweenRowsAndVideoUsingRequestFocusInternal(Class cls)
+    private void navigateBetweenRowsAndVideoUsingRequestFocusInternal(Class<?> cls)
             throws Throwable {
         SingleSupportFragmentTestActivity activity = launchAndWaitActivity(cls,
                 new Options().uiVisibility(
@@ -336,7 +336,7 @@
         navigateBetweenRowsAndVideoUsingRequestFocusInternal(DetailsSupportFragmentWithVideo2.class);
     }
 
-    private void navigateBetweenRowsAndVideoUsingDPADInternal(Class cls) throws Throwable {
+    private void navigateBetweenRowsAndVideoUsingDPADInternal(Class<?> cls) throws Throwable {
         SingleSupportFragmentTestActivity activity = launchAndWaitActivity(cls,
                 new Options().uiVisibility(
                         View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN), 0);
@@ -407,7 +407,7 @@
         }
     }
 
-    private void fragmentOnStartWithVideoInternal(Class cls) throws Throwable {
+    private void fragmentOnStartWithVideoInternal(Class<?> cls) throws Throwable {
         final SingleSupportFragmentTestActivity activity = launchAndWaitActivity(cls,
                 new Options().uiVisibility(
                         View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN), 0);
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/RowsFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/RowsFragmentTest.java
index 23a4e1c..d1cce4a 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/RowsFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/RowsFragmentTest.java
@@ -549,7 +549,7 @@
         /**
          * Util to wait PageFragment swapped.
          */
-        Fragment waitPageFragment(final Class pageFragmentClass) {
+        Fragment waitPageFragment(final Class<?> pageFragmentClass) {
             PollingCheck.waitFor(new PollingCheck.PollingCheckCondition() {
                 @Override
                 public boolean canProceed() {
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/RowsSupportFragmentTest.java b/leanback/src/androidTest/java/androidx/leanback/app/RowsSupportFragmentTest.java
index 3e875cb..71cbe61 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/RowsSupportFragmentTest.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/RowsSupportFragmentTest.java
@@ -546,7 +546,7 @@
         /**
          * Util to wait PageFragment swapped.
          */
-        Fragment waitPageFragment(final Class pageFragmentClass) {
+        Fragment waitPageFragment(final Class<?> pageFragmentClass) {
             PollingCheck.waitFor(new PollingCheck.PollingCheckCondition() {
                 @Override
                 public boolean canProceed() {
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/SingleFragmentTestBase.java b/leanback/src/androidTest/java/androidx/leanback/app/SingleFragmentTestBase.java
index d26f69b..607416f 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/SingleFragmentTestBase.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/SingleFragmentTestBase.java
@@ -91,7 +91,8 @@
         }
     }
 
-    public SingleFragmentTestActivity launchAndWaitActivity(Class fragmentClass, long waitTimeMs) {
+    public SingleFragmentTestActivity launchAndWaitActivity(Class<?> fragmentClass,
+            long waitTimeMs) {
         return launchAndWaitActivity(fragmentClass.getName(), null, waitTimeMs);
     }
 
@@ -101,7 +102,7 @@
         return activity;
     }
 
-    public SingleFragmentTestActivity launchAndWaitActivity(Class fragmentClass, Options options,
+    public SingleFragmentTestActivity launchAndWaitActivity(Class<?> fragmentClass, Options options,
             long waitTimeMs) {
         return launchAndWaitActivity(fragmentClass.getName(), options, waitTimeMs);
     }
diff --git a/leanback/src/androidTest/java/androidx/leanback/app/SingleSupportFragmentTestBase.java b/leanback/src/androidTest/java/androidx/leanback/app/SingleSupportFragmentTestBase.java
index 3346971..d012618 100644
--- a/leanback/src/androidTest/java/androidx/leanback/app/SingleSupportFragmentTestBase.java
+++ b/leanback/src/androidTest/java/androidx/leanback/app/SingleSupportFragmentTestBase.java
@@ -88,7 +88,8 @@
         }
     }
 
-    public SingleSupportFragmentTestActivity launchAndWaitActivity(Class fragmentClass, long waitTimeMs) {
+    public SingleSupportFragmentTestActivity launchAndWaitActivity(Class<?> fragmentClass,
+            long waitTimeMs) {
         return launchAndWaitActivity(fragmentClass.getName(), null, waitTimeMs);
     }
 
@@ -98,8 +99,8 @@
         return activity;
     }
 
-    public SingleSupportFragmentTestActivity launchAndWaitActivity(Class fragmentClass, Options options,
-            long waitTimeMs) {
+    public SingleSupportFragmentTestActivity launchAndWaitActivity(Class<?> fragmentClass,
+            Options options, long waitTimeMs) {
         return launchAndWaitActivity(fragmentClass.getName(), options, waitTimeMs);
     }
 
diff --git a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/ActivityFullLifecycleTest.java b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/ActivityFullLifecycleTest.java
index 06d2dde..4cdbfa7 100644
--- a/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/ActivityFullLifecycleTest.java
+++ b/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/ActivityFullLifecycleTest.java
@@ -50,8 +50,8 @@
     private final Class<? extends Activity> activityClass;
 
     @Parameterized.Parameters
-    public static Class[] params() {
-        return new Class[]{CollectingSupportActivity.class,
+    public static Class<?>[] params() {
+        return new Class<?>[]{CollectingSupportActivity.class,
                 FrameworkLifecycleRegistryActivity.class};
     }
 
diff --git a/lifecycle/lifecycle-common/src/main/java/androidx/lifecycle/ClassesInfoCache.java b/lifecycle/lifecycle-common/src/main/java/androidx/lifecycle/ClassesInfoCache.java
index 652e01a..dfb5f01 100644
--- a/lifecycle/lifecycle-common/src/main/java/androidx/lifecycle/ClassesInfoCache.java
+++ b/lifecycle/lifecycle-common/src/main/java/androidx/lifecycle/ClassesInfoCache.java
@@ -38,10 +38,10 @@
     private static final int CALL_TYPE_PROVIDER = 1;
     private static final int CALL_TYPE_PROVIDER_WITH_EVENT = 2;
 
-    private final Map<Class, CallbackInfo> mCallbackMap = new HashMap<>();
-    private final Map<Class, Boolean> mHasLifecycleMethods = new HashMap<>();
+    private final Map<Class<?>, CallbackInfo> mCallbackMap = new HashMap<>();
+    private final Map<Class<?>, Boolean> mHasLifecycleMethods = new HashMap<>();
 
-    boolean hasLifecycleMethods(Class klass) {
+    boolean hasLifecycleMethods(Class<?> klass) {
         Boolean hasLifecycleMethods = mHasLifecycleMethods.get(klass);
         if (hasLifecycleMethods != null) {
             return hasLifecycleMethods;
@@ -65,7 +65,7 @@
         return false;
     }
 
-    private Method[] getDeclaredMethods(Class klass) {
+    private Method[] getDeclaredMethods(Class<?> klass) {
         try {
             return klass.getDeclaredMethods();
         } catch (NoClassDefFoundError e) {
@@ -77,7 +77,7 @@
         }
     }
 
-    CallbackInfo getInfo(Class klass) {
+    CallbackInfo getInfo(Class<?> klass) {
         CallbackInfo existing = mCallbackMap.get(klass);
         if (existing != null) {
             return existing;
@@ -87,7 +87,7 @@
     }
 
     private void verifyAndPutHandler(Map<MethodReference, Lifecycle.Event> handlers,
-            MethodReference newHandler, Lifecycle.Event newEvent, Class klass) {
+            MethodReference newHandler, Lifecycle.Event newEvent, Class<?> klass) {
         Lifecycle.Event event = handlers.get(newHandler);
         if (event != null && newEvent != event) {
             Method method = newHandler.mMethod;
@@ -101,8 +101,8 @@
         }
     }
 
-    private CallbackInfo createInfo(Class klass, @Nullable Method[] declaredMethods) {
-        Class superclass = klass.getSuperclass();
+    private CallbackInfo createInfo(Class<?> klass, @Nullable Method[] declaredMethods) {
+        Class<?> superclass = klass.getSuperclass();
         Map<MethodReference, Lifecycle.Event> handlerToEvent = new HashMap<>();
         if (superclass != null) {
             CallbackInfo superInfo = getInfo(superclass);
@@ -111,8 +111,8 @@
             }
         }
 
-        Class[] interfaces = klass.getInterfaces();
-        for (Class intrfc : interfaces) {
+        Class<?>[] interfaces = klass.getInterfaces();
+        for (Class<?> intrfc : interfaces) {
             for (Map.Entry<MethodReference, Lifecycle.Event> entry : getInfo(
                     intrfc).mHandlerToEvent.entrySet()) {
                 verifyAndPutHandler(handlerToEvent, entry.getKey(), entry.getValue(), klass);
diff --git a/lifecycle/lifecycle-common/src/main/java/androidx/lifecycle/Lifecycling.java b/lifecycle/lifecycle-common/src/main/java/androidx/lifecycle/Lifecycling.java
index 9ccdd96..1ee0f76 100644
--- a/lifecycle/lifecycle-common/src/main/java/androidx/lifecycle/Lifecycling.java
+++ b/lifecycle/lifecycle-common/src/main/java/androidx/lifecycle/Lifecycling.java
@@ -39,8 +39,8 @@
     private static final int REFLECTIVE_CALLBACK = 1;
     private static final int GENERATED_CALLBACK = 2;
 
-    private static Map<Class, Integer> sCallbackCache = new HashMap<>();
-    private static Map<Class, List<Constructor<? extends GeneratedAdapter>>> sClassToAdapters =
+    private static Map<Class<?>, Integer> sCallbackCache = new HashMap<>();
+    private static Map<Class<?>, List<Constructor<? extends GeneratedAdapter>>> sClassToAdapters =
             new HashMap<>();
 
     // Left for binary compatibility when lifecycle-common goes up 2.1 as transitive dep
diff --git a/loader/loader/src/main/java/androidx/loader/app/LoaderManagerImpl.java b/loader/loader/src/main/java/androidx/loader/app/LoaderManagerImpl.java
index 00dceb2..1e10217 100644
--- a/loader/loader/src/main/java/androidx/loader/app/LoaderManagerImpl.java
+++ b/loader/loader/src/main/java/androidx/loader/app/LoaderManagerImpl.java
@@ -202,7 +202,7 @@
             sb.append(" #");
             sb.append(mId);
             sb.append(" : ");
-            Class cls = mLoader.getClass();
+            Class<?> cls = mLoader.getClass();
             sb.append(cls.getSimpleName());
             sb.append("{");
             sb.append(Integer.toHexString(System.identityHashCode(cls)));
diff --git a/loader/loader/src/main/java/androidx/loader/content/Loader.java b/loader/loader/src/main/java/androidx/loader/content/Loader.java
index edfa545..61e5b2b 100644
--- a/loader/loader/src/main/java/androidx/loader/content/Loader.java
+++ b/loader/loader/src/main/java/androidx/loader/content/Loader.java
@@ -527,7 +527,7 @@
         if (data == null) {
             sb.append("null");
         } else {
-            Class cls = data.getClass();
+            Class<?> cls = data.getClass();
             sb.append(cls.getSimpleName());
             sb.append("{");
             sb.append(Integer.toHexString(System.identityHashCode(cls)));
@@ -540,7 +540,7 @@
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder(64);
-        Class cls = getClass();
+        Class<?> cls = getClass();
         sb.append(cls.getSimpleName());
         sb.append("{");
         sb.append(Integer.toHexString(System.identityHashCode(cls)));
diff --git a/media2/session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaItemTest.java b/media2/session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaItemTest.java
index b3ccc73..0fd172e 100644
--- a/media2/session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaItemTest.java
+++ b/media2/session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaItemTest.java
@@ -61,7 +61,7 @@
 @SmallTest
 public class MediaItemTest {
     private final MediaItemFactory mItemFactory;
-    private final Class mItemBuilderClass;
+    private final Class<?> mItemBuilderClass;
     private Context mContext;
     private MediaItem mTestItem;
 
@@ -143,7 +143,7 @@
                 {sFileMediaItemFactory, FileMediaItem.Builder.class}});
     }
 
-    public MediaItemTest(MediaItemFactory factory, Class builderClass) {
+    public MediaItemTest(MediaItemFactory factory, Class<?> builderClass) {
         mItemFactory = factory;
         mItemBuilderClass = builderClass;
     }
diff --git a/navigation/navigation-common/src/main/java/androidx/navigation/NavDestination.java b/navigation/navigation-common/src/main/java/androidx/navigation/NavDestination.java
index f5b35fc..32d6419 100644
--- a/navigation/navigation-common/src/main/java/androidx/navigation/NavDestination.java
+++ b/navigation/navigation-common/src/main/java/androidx/navigation/NavDestination.java
@@ -108,7 +108,7 @@
         }
     }
 
-    private static final HashMap<String, Class> sClasses = new HashMap<>();
+    private static final HashMap<String, Class<?>> sClasses = new HashMap<>();
 
     /**
      * Parse the class associated with this destination from a raw name, generally extracted
@@ -136,7 +136,7 @@
         if (name.charAt(0) == '.') {
             name = context.getPackageName() + name;
         }
-        Class clazz = sClasses.get(name);
+        Class<?> clazz = sClasses.get(name);
         if (clazz == null) {
             try {
                 clazz = Class.forName(name, true, context.getClassLoader());
@@ -149,7 +149,7 @@
             throw new IllegalArgumentException(name + " must be a subclass of "
                     + expectedClassType);
         }
-        return clazz;
+        return (Class<? extends C>) clazz;
     }
 
     /**
diff --git a/navigation/navigation-common/src/main/java/androidx/navigation/NavType.java b/navigation/navigation-common/src/main/java/androidx/navigation/NavType.java
index 248de6f..e238e59 100644
--- a/navigation/navigation-common/src/main/java/androidx/navigation/NavType.java
+++ b/navigation/navigation-common/src/main/java/androidx/navigation/NavType.java
@@ -159,14 +159,14 @@
 
                 if (type.endsWith("[]")) {
                     className = className.substring(0, className.length() - 2);
-                    Class clazz = Class.forName(className);
+                    Class<?> clazz = Class.forName(className);
                     if (Parcelable.class.isAssignableFrom(clazz)) {
                         return new ParcelableArrayType(clazz);
                     } else if (Serializable.class.isAssignableFrom(clazz)) {
                         return new SerializableArrayType(clazz);
                     }
                 } else {
-                    Class clazz = Class.forName(className);
+                    Class<?> clazz = Class.forName(className);
                     if (Parcelable.class.isAssignableFrom(clazz)) {
                         return new ParcelableType(clazz);
                     } else if (Enum.class.isAssignableFrom(clazz)) {
diff --git a/navigation/navigation-common/src/main/java/androidx/navigation/NavigatorProvider.java b/navigation/navigation-common/src/main/java/androidx/navigation/NavigatorProvider.java
index e24dee37..6ed7a15 100644
--- a/navigation/navigation-common/src/main/java/androidx/navigation/NavigatorProvider.java
+++ b/navigation/navigation-common/src/main/java/androidx/navigation/NavigatorProvider.java
@@ -31,7 +31,7 @@
  */
 @SuppressLint("TypeParameterUnusedInFormals")
 public class NavigatorProvider {
-    private static final HashMap<Class, String> sAnnotationNames = new HashMap<>();
+    private static final HashMap<Class<?>, String> sAnnotationNames = new HashMap<>();
 
     @SuppressWarnings("BooleanMethodIsAlwaysInverted")
     private static boolean validateName(String name) {
diff --git a/preference/src/main/java/androidx/preference/PreferenceInflater.java b/preference/src/main/java/androidx/preference/PreferenceInflater.java
index 0a11fa5..4fc7aec 100644
--- a/preference/src/main/java/androidx/preference/PreferenceInflater.java
+++ b/preference/src/main/java/androidx/preference/PreferenceInflater.java
@@ -37,7 +37,7 @@
  * This inflater is used to inflate preference hierarchies from XML files.
  */
 class PreferenceInflater {
-    private static final Class<?>[] CONSTRUCTOR_SIGNATURE = new Class[]{
+    private static final Class<?>[] CONSTRUCTOR_SIGNATURE = new Class<?>[]{
             Context.class, AttributeSet.class};
 
     private static final HashMap<String, Constructor> CONSTRUCTOR_MAP = new HashMap<>();
diff --git a/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/RecyclerView.java b/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/RecyclerView.java
index c75d1bf..651bb8c 100644
--- a/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/RecyclerView.java
+++ b/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/RecyclerView.java
@@ -362,7 +362,7 @@
      */
     static final String TRACE_CREATE_VIEW_TAG = "RV CreateView";
     private static final Class<?>[] LAYOUT_MANAGER_CONSTRUCTOR_SIGNATURE =
-            new Class[]{Context.class, AttributeSet.class, int.class, int.class};
+            new Class<?>[]{Context.class, AttributeSet.class, int.class, int.class};
 
     private final RecyclerViewDataObserver mObserver = new RecyclerViewDataObserver();
 
diff --git a/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/MainActivity.java b/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/MainActivity.java
index 8b87468..277957e 100644
--- a/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/MainActivity.java
+++ b/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/MainActivity.java
@@ -159,7 +159,8 @@
                     R.string.pin_picker_description);
         }
 
-        private void addAction(List<GuidedAction> actions, Class cls, int titleRes, int descRes) {
+        private void addAction(List<GuidedAction> actions, Class<?> cls, int titleRes,
+                int descRes) {
             actions.add(new GuidedAction.Builder(getActivity())
                     .intent(new Intent(getActivity(), cls))
                     .title(getString(titleRes))
diff --git a/slidingpanelayout/src/main/java/androidx/slidingpanelayout/widget/SlidingPaneLayout.java b/slidingpanelayout/src/main/java/androidx/slidingpanelayout/widget/SlidingPaneLayout.java
index 50429c5..9972315 100644
--- a/slidingpanelayout/src/main/java/androidx/slidingpanelayout/widget/SlidingPaneLayout.java
+++ b/slidingpanelayout/src/main/java/androidx/slidingpanelayout/widget/SlidingPaneLayout.java
@@ -1034,7 +1034,7 @@
             if (!mDisplayListReflectionLoaded) {
                 try {
                     mGetDisplayList = View.class.getDeclaredMethod("getDisplayList",
-                            (Class[]) null);
+                            (Class<?>[]) null);
                 } catch (NoSuchMethodException e) {
                     Log.e(TAG, "Couldn't fetch getDisplayList method; dimming won't work right.",
                             e);
diff --git a/transition/src/main/java/androidx/transition/TransitionInflater.java b/transition/src/main/java/androidx/transition/TransitionInflater.java
index aec4b01..721b78b 100644
--- a/transition/src/main/java/androidx/transition/TransitionInflater.java
+++ b/transition/src/main/java/androidx/transition/TransitionInflater.java
@@ -42,8 +42,8 @@
 public class TransitionInflater {
 
     private static final Class<?>[] CONSTRUCTOR_SIGNATURE =
-            new Class[]{Context.class, AttributeSet.class};
-    private static final ArrayMap<String, Constructor> CONSTRUCTORS = new ArrayMap<>();
+            new Class<?>[]{Context.class, AttributeSet.class};
+    private static final ArrayMap<String, Constructor<?>> CONSTRUCTORS = new ArrayMap<>();
 
     private final Context mContext;
 
@@ -190,7 +190,7 @@
         return transition;
     }
 
-    private Object createCustom(AttributeSet attrs, Class expectedType, String tag) {
+    private Object createCustom(AttributeSet attrs, Class<?> expectedType, String tag) {
         String className = attrs.getAttributeValue(null, "class");
 
         if (className == null) {
@@ -199,7 +199,7 @@
 
         try {
             synchronized (CONSTRUCTORS) {
-                Constructor constructor = CONSTRUCTORS.get(className);
+                Constructor<?> constructor = CONSTRUCTORS.get(className);
                 if (constructor == null) {
                     @SuppressWarnings("unchecked")
                     Class<?> c = Class.forName(className, false, mContext.getClassLoader())
@@ -257,11 +257,11 @@
                             "excludeClass", Styleable.TransitionTarget.EXCLUDE_CLASS);
                     try {
                         if (className != null) {
-                            Class clazz = Class.forName(className);
+                            Class<?> clazz = Class.forName(className);
                             transition.excludeTarget(clazz, true);
                         } else if ((className = TypedArrayUtils.getNamedString(a, parser,
                                 "targetClass", Styleable.TransitionTarget.TARGET_CLASS)) != null) {
-                            Class clazz = Class.forName(className);
+                            Class<?> clazz = Class.forName(className);
                             transition.addTarget(clazz);
                         }
                     } catch (ClassNotFoundException e) {
diff --git a/versionedparcelable/src/main/java/androidx/versionedparcelable/VersionedParcel.java b/versionedparcelable/src/main/java/androidx/versionedparcelable/VersionedParcel.java
index 92499b6..0aa7cdc 100644
--- a/versionedparcelable/src/main/java/androidx/versionedparcelable/VersionedParcel.java
+++ b/versionedparcelable/src/main/java/androidx/versionedparcelable/VersionedParcel.java
@@ -1037,7 +1037,7 @@
     }
 
     private void writeVersionedParcelableCreator(VersionedParcelable p) {
-        Class name = null;
+        Class<?> name;
         try {
             name = findParcelClass(p.getClass());
         } catch (ClassNotFoundException e) {
@@ -1612,7 +1612,7 @@
         return m;
     }
 
-    private Method getWriteMethod(Class baseCls) throws IllegalAccessException,
+    private Method getWriteMethod(Class<?> baseCls) throws IllegalAccessException,
             NoSuchMethodException, ClassNotFoundException {
         Method m = mWriteCache.get(baseCls.getName());
         if (m == null) {
@@ -1623,9 +1623,9 @@
         return m;
     }
 
-    private Class findParcelClass(Class<?> cls)
+    private Class<?> findParcelClass(Class<?> cls)
             throws ClassNotFoundException {
-        Class ret = mParcelizerCache.get(cls.getName());
+        Class<?> ret = mParcelizerCache.get(cls.getName());
         if (ret == null) {
             String pkg = cls.getPackage().getName();
             String c = String.format("%s.%sParcelizer", pkg, cls.getSimpleName());
diff --git a/viewpager/src/androidTest/java/androidx/viewpager/widget/BaseViewPagerTest.java b/viewpager/src/androidTest/java/androidx/viewpager/widget/BaseViewPagerTest.java
index 4bf3926..15cfc63 100644
--- a/viewpager/src/androidTest/java/androidx/viewpager/widget/BaseViewPagerTest.java
+++ b/viewpager/src/androidTest/java/androidx/viewpager/widget/BaseViewPagerTest.java
@@ -664,7 +664,7 @@
     /**
      * Returns the class of the pager strip.
      */
-    protected abstract Class getStripClass();
+    protected abstract Class<? extends View> getStripClass();
 
     /**
      * Checks assertions that are specific to the pager strip implementation (interactive or
diff --git a/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerWithTabStripTest.java b/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerWithTabStripTest.java
index c4cb8e8..4a0c74c 100644
--- a/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerWithTabStripTest.java
+++ b/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerWithTabStripTest.java
@@ -37,7 +37,7 @@
     }
 
     @Override
-    protected Class getStripClass() {
+    protected Class<PagerTabStrip> getStripClass() {
         return PagerTabStrip.class;
     }
 
diff --git a/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerWithTitleStripTest.java b/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerWithTitleStripTest.java
index cc848ba..7f3f941 100644
--- a/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerWithTitleStripTest.java
+++ b/viewpager/src/androidTest/java/androidx/viewpager/widget/ViewPagerWithTitleStripTest.java
@@ -38,7 +38,7 @@
     }
 
     @Override
-    protected Class getStripClass() {
+    protected Class<PagerTitleStrip> getStripClass() {
         return PagerTitleStrip.class;
     }
 
diff --git a/work/workmanager/src/main/java/androidx/work/ArrayCreatingInputMerger.java b/work/workmanager/src/main/java/androidx/work/ArrayCreatingInputMerger.java
index caf4f1d..b3b3336 100644
--- a/work/workmanager/src/main/java/androidx/work/ArrayCreatingInputMerger.java
+++ b/work/workmanager/src/main/java/androidx/work/ArrayCreatingInputMerger.java
@@ -59,7 +59,7 @@
             for (Map.Entry<String, Object> entry : input.getKeyValueMap().entrySet()) {
                 String key = entry.getKey();
                 Object value = entry.getValue();
-                Class valueClass = value.getClass();
+                Class<?> valueClass = value.getClass();
                 Object mergedValue;
 
                 Object existingValue = mergedValues.get(key);
@@ -74,7 +74,7 @@
                     }
                 } else {
                     // We've encountered this key before.
-                    Class existingValueClass = existingValue.getClass();
+                    Class<?> existingValueClass = existingValue.getClass();
 
                     if (existingValueClass.equals(valueClass)) {
                         // The classes match; we can merge.
diff --git a/work/workmanager/src/main/java/androidx/work/Data.java b/work/workmanager/src/main/java/androidx/work/Data.java
index 66b9937..6d0beba 100644
--- a/work/workmanager/src/main/java/androidx/work/Data.java
+++ b/work/workmanager/src/main/java/androidx/work/Data.java
@@ -723,7 +723,7 @@
             if (value == null) {
                 mValues.put(key, null);
             } else {
-                Class valueType = value.getClass();
+                Class<?> valueType = value.getClass();
                 if (valueType == Boolean.class
                         || valueType == Byte.class
                         || valueType == Integer.class
diff --git a/work/workmanager/src/main/java/androidx/work/impl/utils/PackageManagerHelper.java b/work/workmanager/src/main/java/androidx/work/impl/utils/PackageManagerHelper.java
index c5a5947..8a9aaad 100644
--- a/work/workmanager/src/main/java/androidx/work/impl/utils/PackageManagerHelper.java
+++ b/work/workmanager/src/main/java/androidx/work/impl/utils/PackageManagerHelper.java
@@ -41,7 +41,7 @@
      */
     public static void setComponentEnabled(
             @NonNull Context context,
-            @NonNull Class klazz,
+            @NonNull Class<?> klazz,
             boolean enabled) {
         try {
             PackageManager packageManager = context.getPackageManager();
@@ -63,7 +63,7 @@
     /**
      * Convenience method for {@link #isComponentExplicitlyEnabled(Context, String)}
      */
-    public static boolean isComponentExplicitlyEnabled(Context context, Class klazz) {
+    public static boolean isComponentExplicitlyEnabled(Context context, Class<?> klazz) {
         return isComponentExplicitlyEnabled(context, klazz.getName());
     }