```class GenericClass<T> where T : Interface...
# getting-started
y
Copy code
class GenericClass<T> where T : Interface {
    
    fun doSomethingWithT(t: T) { t.interfaceMethod() }
    
    companion object {
        
        private val instance: GenericClass<Interface> = GenericClass()
        
        fun <T> getAnInstance(): GenericClass<T> where T : Interface {
            return instance as GenericClass<T>
        }
    }
}