diff --git a/fragment/fragment-lint/src/main/java/androidx/fragment/lint/OnCreateDialogIncorrectCallbackDetector.kt b/fragment/fragment-lint/src/main/java/androidx/fragment/lint/OnCreateDialogIncorrectCallbackDetector.kt
index 3fecccc..012ed0a 100644
--- a/fragment/fragment-lint/src/main/java/androidx/fragment/lint/OnCreateDialogIncorrectCallbackDetector.kt
+++ b/fragment/fragment-lint/src/main/java/androidx/fragment/lint/OnCreateDialogIncorrectCallbackDetector.kt
@@ -75,7 +75,7 @@
     private inner class UastHandler(val context: JavaContext) : UElementHandler() {
         override fun visitClass(node: UClass) {
             if (isKotlin(context.psiFile) &&
-                (node as KotlinUClass).ktClass!!.getSuperNames().firstOrNull() !=
+                (node as? KotlinUClass)?.ktClass?.getSuperNames()?.firstOrNull() !=
                 DIALOG_FRAGMENT_CLASS
             ) {
                 return
diff --git a/fragment/fragment-lint/src/test/java/androidx/fragment/lint/OnCreateDialogIncorrectCallbackDetectorTest.kt b/fragment/fragment-lint/src/test/java/androidx/fragment/lint/OnCreateDialogIncorrectCallbackDetectorTest.kt
index 322d5c2..73405fd 100644
--- a/fragment/fragment-lint/src/test/java/androidx/fragment/lint/OnCreateDialogIncorrectCallbackDetectorTest.kt
+++ b/fragment/fragment-lint/src/test/java/androidx/fragment/lint/OnCreateDialogIncorrectCallbackDetectorTest.kt
@@ -300,4 +300,42 @@
             .run()
             .expectClean()
     }
+
+    @Test
+    fun `kotlin anonymous object`() {
+        lint().files(
+            kotlin(
+                """
+            package com.example
+
+            val foo = object : Foo() {
+                override fun test() { }
+            }
+            """
+            ).indented()
+        )
+            .run()
+            .expectClean()
+    }
+
+    @Test
+    fun `java anonymous object`() {
+        lint().files(
+            java(
+                """
+            package com.example;
+
+            interface Foo {
+                fun test();
+            }
+
+            class Bar {
+                Foo foo = (com.example.Foo)()-> { };
+            }
+            """
+            ).indented()
+        )
+            .run()
+            .expectClean()
+    }
 }
