Ray Rahke
02/21/2024, 6:42 PMShawn
02/21/2024, 6:43 PMShawn
02/21/2024, 6:43 PMcomponents.asSequence()
.filterIsInstance<SubA>()
.first()
Shawn
02/21/2024, 6:43 PMRay Rahke
02/21/2024, 6:44 PMRay Rahke
02/21/2024, 6:44 PMRay Rahke
02/21/2024, 6:44 PMShawn
02/21/2024, 6:45 PMfindFirstInstance()
an inline fun
and make the type parameter reified T : Base
Ray Rahke
02/21/2024, 6:45 PMRay Rahke
02/21/2024, 6:45 PMShawn
02/21/2024, 6:46 PMRay Rahke
02/21/2024, 6:47 PMRay Rahke
02/21/2024, 6:47 PMRay Rahke
02/21/2024, 6:47 PMRay Rahke
02/21/2024, 6:47 PMShawn
02/21/2024, 6:47 PMRay Rahke
02/21/2024, 6:47 PMRay Rahke
02/21/2024, 6:48 PMRay Rahke
02/21/2024, 6:48 PMShawn
02/21/2024, 6:49 PMfindFirstInstance
return multiple instances lolRay Rahke
02/21/2024, 6:49 PMRay Rahke
02/21/2024, 6:49 PMShawn
02/21/2024, 6:49 PMRay Rahke
02/21/2024, 6:50 PMRay Rahke
02/21/2024, 6:50 PMRay Rahke
02/21/2024, 6:50 PMRay Rahke
02/21/2024, 6:50 PMRay Rahke
02/21/2024, 6:50 PMRay Rahke
02/21/2024, 6:50 PMRay Rahke
02/21/2024, 6:50 PMRay Rahke
02/21/2024, 6:51 PMRay Rahke
02/21/2024, 6:51 PMRay Rahke
02/21/2024, 6:51 PMShawn
02/21/2024, 6:51 PMRay Rahke
02/21/2024, 6:53 PMRay Rahke
02/21/2024, 6:53 PMShawn
02/21/2024, 6:53 PMRay Rahke
02/21/2024, 6:54 PMRay Rahke
02/21/2024, 6:54 PMRay Rahke
02/21/2024, 6:55 PMwell, it looks you can overload the method with different `KClass`s without worrying about erasurei actually dont think i need to overload at all
Ray Rahke
02/21/2024, 6:55 PMRay Rahke
02/21/2024, 6:55 PMRay Rahke
02/21/2024, 6:55 PMRay Rahke
02/21/2024, 6:55 PMRay Rahke
02/21/2024, 6:55 PMShawn
02/21/2024, 6:56 PMtype == Stackable::class
because you're not working with a class instanceRay Rahke
02/21/2024, 6:56 PMRay Rahke
02/21/2024, 6:56 PMShawn
02/21/2024, 6:56 PMRay Rahke
02/21/2024, 6:56 PMRay Rahke
02/21/2024, 6:57 PMRay Rahke
02/21/2024, 6:57 PMRay Rahke
02/21/2024, 6:59 PMas
catRay Rahke
02/21/2024, 6:59 PMShawn
02/21/2024, 7:00 PMShawn
02/21/2024, 7:00 PMRay Rahke
02/21/2024, 7:03 PMRay Rahke
02/21/2024, 7:03 PMRay Rahke
02/21/2024, 7:04 PMRay Rahke
02/21/2024, 7:04 PMRay Rahke
02/21/2024, 7:04 PMif x is Blah
condition, then x
definitely is Blah
?Ray Rahke
02/21/2024, 7:05 PMas Blah
should be trivially trustworthyRay Rahke
02/21/2024, 7:05 PMRay Rahke
02/21/2024, 7:05 PMShawn
02/21/2024, 7:06 PMT
Ray Rahke
02/21/2024, 7:06 PMShawn
02/21/2024, 7:06 PMShawn
02/21/2024, 7:06 PMRay Rahke
02/21/2024, 7:06 PMRay Rahke
02/21/2024, 7:06 PMRay Rahke
02/21/2024, 7:06 PMRay Rahke
02/21/2024, 7:06 PMRay Rahke
02/21/2024, 7:07 PMRay Rahke
02/21/2024, 7:08 PMShawn
02/21/2024, 7:08 PMStackable
and an Unstackable
type (or named whatever you'd like) in order to differentiateRay Rahke
02/21/2024, 7:09 PMRay Rahke
02/21/2024, 7:09 PMRay Rahke
02/21/2024, 7:09 PMRay Rahke
02/21/2024, 7:09 PMShawn
02/21/2024, 7:10 PMsealed
Ray Rahke
02/21/2024, 7:10 PMRay Rahke
02/21/2024, 7:10 PMRay Rahke
02/21/2024, 7:11 PMRay Rahke
02/21/2024, 7:11 PMRay Rahke
02/21/2024, 7:11 PMRay Rahke
02/21/2024, 7:13 PMRay Rahke
02/21/2024, 7:13 PMRay Rahke
02/21/2024, 7:15 PMRay Rahke
02/21/2024, 7:15 PMRay Rahke
02/21/2024, 7:15 PMShawn
02/21/2024, 7:17 PMRay Rahke
02/21/2024, 7:18 PMRay Rahke
02/21/2024, 7:18 PMRay Rahke
02/21/2024, 7:18 PMRay Rahke
02/21/2024, 7:19 PMRay Rahke
02/21/2024, 7:19 PMRay Rahke
02/21/2024, 7:20 PMas
do a literal runtime cast?Ray Rahke
02/21/2024, 7:20 PMRay Rahke
02/21/2024, 7:20 PMRay Rahke
02/21/2024, 7:22 PMShawn
02/21/2024, 7:26 PMreified
, you can smart-cast but you can't use the same name (the overload will be ambiguous and won't resolve). if you accept two different KClass
types, you will have to manually cast but you can use the same name