تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ ابوالفضل رضایی
keyWord .java داخل متد ها
پوریا شفیعی حل شده توسط پوریا شفیعی

سلام..

ببخشید میخواستم بدونم چرا باید کلمه ی جاوا رو در انتهای این کد بنویسم و اگر که ننویسم ارور میده؟ لازم به ذکره که کلاسی که نوشتم خودش از نوع کاتلینه..

و اینکه میخواستم بدونم چرا اون قسمت باید بنویسم as AppDataBaseKotlin و اگه ننویسم ارور خواهد داد.. در کل خطاهای نوشتاری و بد نویسیم رو هم بگین..

 

نمیدونم چرا ولی واقعا سخته انگار کاتلین نویسی این اوایل

 

@Database(entities = [Student::class], exportSchema = false, version = 1)
abstract class AppDataBaseKotlin : RoomDatabase() {
    companion object {
        @JvmStatic
        var appDataBase: AppDataBaseKotlin? = null
        @JvmStatic
        fun getInstance(context: Context): AppDataBaseKotlin {
            if (appDataBase == null) {
                appDataBase = Room.databaseBuilder(context, AppDataBaseKotlin::class.java, "db_main").build()
            }
            return appDataBase as AppDataBaseKotlin
        }
    }
}

سلام وقت بخیر

 

درمورد سوال اولتون شما رو ارجاع میدم به : https://kotlinlang.org/docs/reference/reflection.html#class-references

as :

برای عمل type casting به کار میرود.(Safe nullable cast operator)

همینطور در  import نیز قابل استفاده هست. مثال : 

import org.test.Message as testMessage

برای ساخت کلاس Database اگر بخواهید کاتلینی کد بزنید من پیشنهاد میکنم داکیومنتیشن گوگل رو مطالعه کنید:

https://developer.android.com/training/data-storage/room#kotlin

 

درمورد اینکه فرمودین کاتلین سخت هست درسته ممکن هست اوایل کمی سردرگم بشید که از چی استفاده کنید ضمن اینکه پیشنهاد میکنم سعی کنید کاتلینی کد بزنید(برای اینکه منظورم رو متوجه شید پیشنهاد میکنم همون مقاله که براتون قرار دادم رو مطالعه کنید).

بهترین پاسخ
پوریا شفیعی ۲۴ آذر ۱۳۹۹، ۱۳:۲۹

سلام آقای رضایی 

امیدوارم حالتون خیلی خوب باشه

تشکر از مهرداد جان عزیز برای توضیحاتشون

 

جناب رضایی با توجه به اینکه شما به درستی متغیر appDatabase رو nullable تعریف کردین و مقدارش روی برابر null قرار دادین ، توی متد getInstance هم شما میتونید به عنوان Return Type کلاس ?AppDataBaseKotlin رو برگردونید (به این معنی که امکان داره null باشه ، اما میدونیم که هیچوقت null نخواهد بود) و در این صورت دیگر نیازی به نوشتن کلمه as نیست

 

با آرزوی موفقیت

Hamidreza Karimi ۲۵ آذر ۱۳۹۹، ۱۳:۳۳