union types, сейчас в kotlin?
                  
                  
                
Почему сразу костыли, sealed interface и вперед
 Misha
                          Borisov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Misha
                          Borisov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  А как тут выкрутиться? fun getClass(type: String): KClass<*> { return when (type) { "string" -> String::class "number" -> Int::class else -> Any::class } }
А как вас тут юниот типы спасут? Дженерик стирается
 Misha
                          Borisov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Misha
                          Borisov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  На этапе компиляции, я буду знать, что там или KClass<String>, или KClass<Int>, или KClass<Any>, а дальше уже без разницы
sealed interface ClassWrapper<T> object StringClassWrapper: ClassWrapper<String> object IntClassWrapper: ClassWrapper<Int
 Misha
                          Borisov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Misha
                          Borisov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Хм. Спасибо, до такого не додумался
Это размеченный юнион, а не просто юнион
 Misha
                          Borisov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Misha
                          Borisov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Хотя момент, это не решает вопрос, просто будет: fun getClass(type: String): ClassWrapper<*> вместо fun getClass(type: String): KClass<*>
Можно каждому из них добавить поле theClass
Неразмеченные юнионы в современных языках помимо сишки еще поискать надо.
У нас точно совпадает определение размеченных юнионов?
 Misha
                          Borisov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Misha
                          Borisov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Ок, ошибся, забыл как sealed работают :)
Обсуждают сегодня