Следуя документации Microsoft, я хотел бы преобразовать следующий код из Java в Kotlin. Тем не менее, Kotlin имеет init и конструктор, в котором я не очень уверен, как мне реализовать его в моем коде. Это потому, что мне нужно вызвать класс конструктора в одной из его функций-членов.
public class AzureServiceAdapter {
private String mMobileBackendUrl = "https://myappname.azurewebsites.net";
private Context mContext;
private MobileServiceClient mClient;
private static AzureServiceAdapter mInstance = null;
private AzureServiceAdapter(Context context) {
mContext = context;
mClient = new MobileServiceClient(mMobileBackendUrl, mContext);
}
public static void Initialize(Context context) {
if (mInstance == null) {
mInstance = new AzureServiceAdapter(context);
} else {
throw new IllegalStateException("AzureServiceAdapter is already initialized");
}
}
Приведенный выше код представляет собой код Android Java от Microsoft.
Ссылаясь на код ниже, я пытался преобразовать код java в kotlin. Однако, когда я попытался проявить фантазию и добавить init and constructor
к своему kotlin коду, я понял, что получу ошибку в mInstance!!.AzureServiceAdapter(context) ?: throw IllegalStateException("AzureServiceAdapter is already initialised")
class AzureServiceAdapter{
private val mMobileBackendUrl = "https://test123.azurewebsites.net"
private lateinit var mContext: Context
private lateinit var azureClient: MobileServiceClient
var mInstance : AzureServiceAdapter? = null
private fun AzureServiceAdapter(context: Context){
mContext = context
azureClient = MobileServiceClient(mMobileBackendUrl, mContext)
}
fun initialize(context: Context) {
mInstance!!.AzureServiceAdapter(context) ?: throw IllegalStateException("AzureServiceAdapter is already initialised")
}
}
Следовательно Есть ли способ конвертировать Java код в kotlin в профессиональной структуре?