api,core,stub: fix lint errors (#6305)

diff --git a/api/src/main/java/io/grpc/MethodDescriptor.java b/api/src/main/java/io/grpc/MethodDescriptor.java
index 6e3c429..2c55af4 100644
--- a/api/src/main/java/io/grpc/MethodDescriptor.java
+++ b/api/src/main/java/io/grpc/MethodDescriptor.java
@@ -490,7 +490,6 @@
      * @param responseMarshaller the marshaller to use.
      * @since 1.1.0
      */
-    @SuppressWarnings("unchecked")
     public Builder<ReqT, RespT> setResponseMarshaller(Marshaller<RespT> responseMarshaller) {
       this.responseMarshaller = responseMarshaller;
       return this;
diff --git a/core/src/main/java/io/grpc/internal/DnsNameResolver.java b/core/src/main/java/io/grpc/internal/DnsNameResolver.java
index b85dd79..feb6d7d 100644
--- a/core/src/main/java/io/grpc/internal/DnsNameResolver.java
+++ b/core/src/main/java/io/grpc/internal/DnsNameResolver.java
@@ -451,7 +451,6 @@
    *
    * @throws IOException if one of the txt records contains improperly formatted JSON.
    */
-  @SuppressWarnings("unchecked")
   @VisibleForTesting
   static List<Map<String, ?>> parseTxtResults(List<String> txtRecords) throws IOException {
     List<Map<String, ?>> possibleServiceConfigChoices = new ArrayList<>();
diff --git a/core/src/main/java/io/grpc/internal/ServiceConfigUtil.java b/core/src/main/java/io/grpc/internal/ServiceConfigUtil.java
index 71e43b0..96a7b03 100644
--- a/core/src/main/java/io/grpc/internal/ServiceConfigUtil.java
+++ b/core/src/main/java/io/grpc/internal/ServiceConfigUtil.java
@@ -355,7 +355,6 @@
   /**
    * Extracts load balancing configs from a service config.
    */
-  @SuppressWarnings("unchecked")
   @VisibleForTesting
   public static List<Map<String, ?>> getLoadBalancingConfigsFromServiceConfig(
       Map<String, ?> serviceConfig) {
@@ -400,7 +399,6 @@
    * (map) with exactly one entry, where the key is the policy name and the value is a config object
    * for that policy.
    */
-  @SuppressWarnings("unchecked")
   public static LbConfig unwrapLoadBalancingConfig(Map<String, ?> lbConfig) {
     if (lbConfig.size() != 1) {
       throw new RuntimeException(
@@ -414,7 +412,6 @@
   /**
    * Given a JSON list of LoadBalancingConfigs, and convert it into a list of LbConfig.
    */
-  @SuppressWarnings("unchecked")
   public static List<LbConfig> unwrapLoadBalancingConfigList(List<Map<String, ?>> list) {
     ArrayList<LbConfig> result = new ArrayList<>();
     for (Map<String, ?> rawChildPolicy : list) {
diff --git a/stub/src/test/java/io/grpc/stub/BaseAbstractStubTest.java b/stub/src/test/java/io/grpc/stub/BaseAbstractStubTest.java
index e2219b9..b197c78 100644
--- a/stub/src/test/java/io/grpc/stub/BaseAbstractStubTest.java
+++ b/stub/src/test/java/io/grpc/stub/BaseAbstractStubTest.java
@@ -20,6 +20,7 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import static org.mockito.Mockito.mock;
 
 import io.grpc.CallOptions;
@@ -48,15 +49,24 @@
 
   abstract T create(@Nullable Channel channel, @Nullable CallOptions callOptions);
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void callOptionsMustNotBeNull() {
-    create(channel, null);
-    throw new NullPointerException();
+    try {
+      create(channel, null);
+      fail("NullPointerException expected");
+    } catch (NullPointerException npe) {
+      // expected
+    }
   }
 
-  @Test(expected = NullPointerException.class)
+  @Test
   public void channelMustNotBeNull2() {
-    create(null, CallOptions.DEFAULT);
+    try {
+      create(null, CallOptions.DEFAULT);
+      fail("NullPointerException expected");
+    } catch (NullPointerException npe) {
+      // expected
+    }
   }
 
   @Test
diff --git a/stub/src/test/java/io/grpc/stub/ClientCallsTest.java b/stub/src/test/java/io/grpc/stub/ClientCallsTest.java
index 9e70fb1..bcae534 100644
--- a/stub/src/test/java/io/grpc/stub/ClientCallsTest.java
+++ b/stub/src/test/java/io/grpc/stub/ClientCallsTest.java
@@ -134,9 +134,9 @@
     };
 
     ClientCalls.asyncUnaryCall(call, req, responseObserver);
-    assertThat(actualResponse.size()).isEqualTo(1);
+    assertThat(actualResponse).hasSize(1);
     assertEquals(resp, actualResponse.get(0));
-    assertThat(completed.size()).isEqualTo(1);
+    assertThat(completed).hasSize(1);
     assertThat(completed.get(0)).isTrue();
   }
 
@@ -173,7 +173,7 @@
     };
 
     ClientCalls.asyncUnaryCall(call, req, responseObserver);
-    assertThat(expected.size()).isEqualTo(1);
+    assertThat(expected).hasSize(1);
     assertThat(expected.get(0)).hasMessageThat()
         .isEqualTo("INTERNAL: Response message is null for unary call");
   }
@@ -212,7 +212,7 @@
     };
 
     ClientCalls.asyncUnaryCall(call, req, responseObserver);
-    assertThat(expected.size()).isEqualTo(1);
+    assertThat(expected).hasSize(1);
     assertThat(expected.get(0)).hasMessageThat().isEqualTo("INTERNAL: Unique status");
   }