#kotlin #interface
Вопрос:
Есть ли способ ограничить тип данных, передаваемых в функции ? У меня есть функция:
fun doSomething(para1: String, para2: Any) { ..do something.. }
и в функции doSomething para2 будет либо A, либо D. функция будет делать точно то же самое, поэтому я не хочу дублировать код… а также я должен избегать использования любого типа данных в качестве….
data class A( val field1A: B, val field2A: C, ) data class D( val field1D: String, )
Я думаю использовать такой интерфейс, как
interface AAA { val field1A: B, val field2A: C, val field1D: String, } data class A( override val field1A: B, override val field2A: C, override val field1D: String, ):AAA data class D( override val field1A: B, override val field2A: C, override val field1D: String, ):AAA fun doSomething(para1: String, para2: AAA) { ..do something.. }
но это заставляет меня иметь неожиданное поле 1d в классе данных A и неожиданное поле 1A, поле 2A в классе данных D
Есть ли какой-нибудь способ достичь этого ?
Комментарии:
1. Как именно
doSomething
используется para2?