Tôi muốn có một lớp không chung chung trong kotlin sử dụng Generics trong hàm khởi tạo của nó để xác định một tham số. Tuy nhiên, tôi không thể tìm ra cách để làm điều này, và bộ chuyển đổi Java-to-Kotlin cho Intellij bị hỏng.Có một lớp Non-Generic có một đối số chung trong hàm tạo
lớp java của tôi trông giống như đầu ra này
public class Test {
interface I1 { }
interface I2 { }
private final I1 mI1;
private final I2 mI2;
public <T extends I1 & I2> Test(T host) {
mI1 = host;
mI2 = host;
}
}
của chuyển đổi trông như thế này.
class Test(host: T) where T: I1, T: I2 {
internal interface I1
internal interface I2
private val mI1: I1
private val mI2: I2
init {
mI1 = host
mI2 = host
}
}
Tôi muốn làm điều này bởi vì trong phát triển Android nó rất hữu ích để có thể xác định một tham số constructor trông giống như <Host extends Context & CustomCallbackInterface>
Đây được gọi là "nhà máy". Sẽ là tốt để giải thích đối tượng đồng hành trong một câu. Ngoài ra chú thích @JvmStatic có thể tốt ở đây nếu họ muốn gọi cho nhà máy như - nếu đó là lớp tĩnh. –