-
שלום.
אני לא מכיר את השפה kotin אבל יש לי קוד מוכן שמאוד חשוב לי, ניסיתי לקמפל אותו ויש שגיאות
הקוד השגיאות:erro src\com\mordechay\mefateach\ai\mordechaymefateach\MordechayMefateach.kt:13:13: unresolved reference: ismpty │ if (!id.ismpty()) { │ ^ │ erro src\com\mordechay\mefateach\ai\mordechaymefateach\MordechayMefateach.kt:16:18: one type argument expected for typealias ArrayList<E> = ArrayList<E> │ val idArray: ArrayList = ArrayList() │ ^ │ erro src\com\mordechay\mefateach\ai\mordechaymefateach\MordechayMefateach.kt:16:30: not enough information to infer type variable E │ val idArray: ArrayList = ArrayList() │ ^ │ erro src\com\mordechay\mefateach\ai\mordechaymefateach\MordechayMefateach.kt:27:31: assignment operators ambiguity: │ public open fun <ERROR FUNCTION>(): [ERROR : <ERROR FUNCTION RETURN TYPE>] defined in root package │ public open fun <ERROR FUNCTION>(): [ERROR : <ERROR FUNCTION RETURN TYPE>] defined in root package │ digit *= 2 │ ^ └ failedתודה!
-
שלום.
אני לא מכיר את השפה kotin אבל יש לי קוד מוכן שמאוד חשוב לי, ניסיתי לקמפל אותו ויש שגיאות
הקוד השגיאות:erro src\com\mordechay\mefateach\ai\mordechaymefateach\MordechayMefateach.kt:13:13: unresolved reference: ismpty │ if (!id.ismpty()) { │ ^ │ erro src\com\mordechay\mefateach\ai\mordechaymefateach\MordechayMefateach.kt:16:18: one type argument expected for typealias ArrayList<E> = ArrayList<E> │ val idArray: ArrayList = ArrayList() │ ^ │ erro src\com\mordechay\mefateach\ai\mordechaymefateach\MordechayMefateach.kt:16:30: not enough information to infer type variable E │ val idArray: ArrayList = ArrayList() │ ^ │ erro src\com\mordechay\mefateach\ai\mordechaymefateach\MordechayMefateach.kt:27:31: assignment operators ambiguity: │ public open fun <ERROR FUNCTION>(): [ERROR : <ERROR FUNCTION RETURN TYPE>] defined in root package │ public open fun <ERROR FUNCTION>(): [ERROR : <ERROR FUNCTION RETURN TYPE>] defined in root package │ digit *= 2 │ ^ └ failedתודה!
@mmmm כפי הנראה כבר תיקנת את
ismptyל-isEmpty
נשאר רק לתקן את הטייפ שלidArrayככה:val idArray = ArrayList<Int>()(לא ערכתי ביקרות כללית על הקוד ואני לא מתכנת בקוטלין, רק תיקנתי את המינימום שזה יתקמפל, ייתכן שיש שגיאות לוגיקה או באגים אחרים, טל"ח...)
-
@mmmm כפי הנראה כבר תיקנת את
ismptyל-isEmpty
נשאר רק לתקן את הטייפ שלidArrayככה:val idArray = ArrayList<Int>()(לא ערכתי ביקרות כללית על הקוד ואני לא מתכנת בקוטלין, רק תיקנתי את המינימום שזה יתקמפל, ייתכן שיש שגיאות לוגיקה או באגים אחרים, טל"ח...)
א. תודה על התגובה המהירה(לא חשבתי שמישהו יענה לי עכשיו)
@yossiz אמר בעזרה | תיקון קוד של kotlin:כפי הנראה כבר תיקנת את ismpty ל-isEmpty
ב. היה כתוב שם משהו אחר לגמרי ושינתי את זה לזה isEmpty וכדאי לבדוק שהפנקציה קיימת שיניתי את זה isempty לראות האם הוא מקפיץ שגיאה
ג. בקוד המיקורי היה כתובif (!TextUtils.isEmpty(id)) {למה זה נותן לא עובד? האם מה שעשיתי עושה את אותו פעולה?
עריכה: יששש!!!! התקמפל (מקווה שזה גם יעבוד)
תודה רבה רבה!!! -
א. תודה על התגובה המהירה(לא חשבתי שמישהו יענה לי עכשיו)
@yossiz אמר בעזרה | תיקון קוד של kotlin:כפי הנראה כבר תיקנת את ismpty ל-isEmpty
ב. היה כתוב שם משהו אחר לגמרי ושינתי את זה לזה isEmpty וכדאי לבדוק שהפנקציה קיימת שיניתי את זה isempty לראות האם הוא מקפיץ שגיאה
ג. בקוד המיקורי היה כתובif (!TextUtils.isEmpty(id)) {למה זה נותן לא עובד? האם מה שעשיתי עושה את אותו פעולה?
עריכה: יששש!!!! התקמפל (מקווה שזה גם יעבוד)
תודה רבה רבה!!! -
@mmmm הפונקציה
TextUtils.isEmptyקיימת רק באנדרויד. מה שעשית פחות טוב כי זה לא בודק ל-null. תשתמש במקום זה:if (!Strings.isNullOrEmpty(id)) { -
@yossiz זה גם באנדרואיד (לא מדויק...), מה צריך לייבא (import) בשביל זה?
@yossiz אמר בעזרה | תיקון קוד של kotlin:
if (!Strings.isNullOrEmpty(id)) {
ראיתי שזה מה שכתבו (google) וחשבתי שאין עניין ב null עכשיו אני קולט שאולי כן כדאי
-
@yossiz אמר בעזרה | תיקון קוד של kotlin:
@mmmm בשביל הקוד שהצעתי לא צריך לייבא שום דבר.
את זה הבנתי, אני שואל מה צריך לייבאות בשביל הקוד שהוא כתב
עדכון, הכן עובד!! -
-
@mmmm הפונקציה
TextUtils.isEmptyקיימת רק באנדרויד. מה שעשית פחות טוב כי זה לא בודק ל-null. תשתמש במקום זה:if (!Strings.isNullOrEmpty(id)) {@yossiz אמר בעזרה | תיקון קוד של kotlin:
@mmmm הפונקציה
TextUtils.isEmptyקיימת רק באנדרויד. מה שעשית פחות טוב כי זה לא בודק ל-null. תשתמש במקום זה:if (!Strings.isNullOrEmpty(id)) {נראה לי שהתכוונתי לזה:
fun idVerification(id: String?): Boolean { if (!id.isNullOrEmpty()) {אבל אין צורך. אפשר גם כך:
fun idVerification(id: String): Boolean { if (!id.isEmpty()) {כי אז אסור לקרוא לפונקציה עם. ערך
nullאבל עדיין צריך לי עיון במקרה של interop עם Java
-
@yossiz אמר בעזרה | תיקון קוד של kotlin:
@mmmm הפונקציה
TextUtils.isEmptyקיימת רק באנדרויד. מה שעשית פחות טוב כי זה לא בודק ל-null. תשתמש במקום זה:if (!Strings.isNullOrEmpty(id)) {נראה לי שהתכוונתי לזה:
fun idVerification(id: String?): Boolean { if (!id.isNullOrEmpty()) {אבל אין צורך. אפשר גם כך:
fun idVerification(id: String): Boolean { if (!id.isEmpty()) {כי אז אסור לקרוא לפונקציה עם. ערך
nullאבל עדיין צריך לי עיון במקרה של interop עם Java
@yossiz אמר בעזרה | תיקון קוד של kotlin:
@mmmm הפונקציה TextUtils.isEmpty קיימת רק באנדרויד. מה שעשית פחות טוב כי זה לא בודק ל-null. תשתמש במקום זה:
if (!Strings.isNullOrEmpty(id)) {נראה לי שהתכוונתי לזה:
fun idVerification(id: String?): Boolean {
if (!id.isNullOrEmpty()) {לא הבנתי, זה אותו דבר???
@yossiz אמר בעזרה | תיקון קוד של kotlin:
if (!id.isEmpty()) {זה מה שעשיתי
@yossiz אמר בעזרה | תיקון קוד של kotlin:
כי אז אסור לקרוא לפונקציה עם. ערך null
לא חושב שיש דרך לקראות לפונקציה עם ערך null במקרה שלי
@yossiz אמר בעזרה | תיקון קוד של kotlin:
אבל עדיין צריך לי עיון במקרה של interop עם Java
לא הבנתי (א. מה זה interop? (סליחה על הבורות) ב. זה kotlin לא java)
-
@yossiz זה גם באנדרואיד (לא מדויק...), מה צריך לייבא (import) בשביל זה?
@yossiz אמר בעזרה | תיקון קוד של kotlin:
if (!Strings.isNullOrEmpty(id)) {
ראיתי שזה מה שכתבו (google) וחשבתי שאין עניין ב null עכשיו אני קולט שאולי כן כדאי
@mmmm אמר בעזרה | תיקון קוד של kotlin:
זה גם באנדרואיד (לא מדויק...), מה צריך לייבא (import) בשביל זה?
הנתיב המלא של המחלקה :
android.text.TextUtilsJava
המתודה
isNullOrEmptyאיננה קיימת בJava והשימוש בstring.isEmptyעם Null יניב את השגיאהNullPointerException, אי לכך הוסיפו אנשי Android לTextUtilsאת המתודות הבאות:isBlankisEmptyisNotBlankisNotEmpty
Kotlin
כל המתודות הנ"ל בנוסף לשני המתודות הבאות [המיועדות עבור
String?) Nullable Receiver)]:isNullOrEmptyisNullOrBlank
מומשו בחבילה
kotlin.textהמהווה חלק מהStandard Library של Kotlin **, כך שאין סיבה להשתמש במחלקהTextUtilsהשייכת לAndroid SDK.
@yossiz אמר בעזרה | תיקון קוד של kotlin:
אבל עדיין צריך לי עיון במקרה של interop עם Java
המתודה
isEmptyמסומנת עם@InlineOnlyמה שהופך אותה ללא זמינה עבור Java (המתודה מתורגמת לPrivate) אולם במקרים רבים אחרים הדבר אכן מהווה בעיה חמורה (בניגוד לKotlin, אף אחד לא מונע ממפתח בJava להעביר Null למתודות בKotlin המצפות לNon-Nulls), כדי למזער את נזקי את הבעיה, המהדר של Kotlin עבור JVM יוסיף בדיקה עבור Null לכל המתודות הציבוריות המצפות לNon-Nulls.** אין צורך ליבא את החבילה
kotlin.textעל מנת לעשות שימוש במתודות הנ"ל, הדבר מתבצע באופן מרומז עבור כל החבילות המרכיבות את הStandard Library, בדומה לשפות רבות אחרות. -
@mmmm אמר בעזרה | תיקון קוד של kotlin:
זה גם באנדרואיד (לא מדויק...), מה צריך לייבא (import) בשביל זה?
הנתיב המלא של המחלקה :
android.text.TextUtilsJava
המתודה
isNullOrEmptyאיננה קיימת בJava והשימוש בstring.isEmptyעם Null יניב את השגיאהNullPointerException, אי לכך הוסיפו אנשי Android לTextUtilsאת המתודות הבאות:isBlankisEmptyisNotBlankisNotEmpty
Kotlin
כל המתודות הנ"ל בנוסף לשני המתודות הבאות [המיועדות עבור
String?) Nullable Receiver)]:isNullOrEmptyisNullOrBlank
מומשו בחבילה
kotlin.textהמהווה חלק מהStandard Library של Kotlin **, כך שאין סיבה להשתמש במחלקהTextUtilsהשייכת לAndroid SDK.
@yossiz אמר בעזרה | תיקון קוד של kotlin:
אבל עדיין צריך לי עיון במקרה של interop עם Java
המתודה
isEmptyמסומנת עם@InlineOnlyמה שהופך אותה ללא זמינה עבור Java (המתודה מתורגמת לPrivate) אולם במקרים רבים אחרים הדבר אכן מהווה בעיה חמורה (בניגוד לKotlin, אף אחד לא מונע ממפתח בJava להעביר Null למתודות בKotlin המצפות לNon-Nulls), כדי למזער את נזקי את הבעיה, המהדר של Kotlin עבור JVM יוסיף בדיקה עבור Null לכל המתודות הציבוריות המצפות לNon-Nulls.** אין צורך ליבא את החבילה
kotlin.textעל מנת לעשות שימוש במתודות הנ"ל, הדבר מתבצע באופן מרומז עבור כל החבילות המרכיבות את הStandard Library, בדומה לשפות רבות אחרות.@רפאל וואו, תודה! איזה תשובה מחכימה!
תודה על מילת המפתח Nullable Receiver - מיד הולך ללמוד על זה... באמת קצת לא הבנתי איך זה אמור לעבוד.
כדי למזער את נזקי את הבעיה, המהדר של Kotlin עבור JVM יוסיף בדיקה עבור Null לכל המתודות הציבוריות המצפות לNon-Nulls.
באמת ראיתי ב-decompilation של הקוד של @mmmm שזה מקומפל ככה:
public final boolean idVerification(@NotNull String id) { Intrinsics.checkNotNullParameter(id, "id"); if (id.length() == 0) { return false; }מה שלימד אותי שיש בדיקת null כמו שכתבת וש-
isEmptyהוא inline... אבל לא ידעתי מה הכללים בזה -
@רפאל וואו, תודה! איזה תשובה מחכימה!
תודה על מילת המפתח Nullable Receiver - מיד הולך ללמוד על זה... באמת קצת לא הבנתי איך זה אמור לעבוד.
כדי למזער את נזקי את הבעיה, המהדר של Kotlin עבור JVM יוסיף בדיקה עבור Null לכל המתודות הציבוריות המצפות לNon-Nulls.
באמת ראיתי ב-decompilation של הקוד של @mmmm שזה מקומפל ככה:
public final boolean idVerification(@NotNull String id) { Intrinsics.checkNotNullParameter(id, "id"); if (id.length() == 0) { return false; }מה שלימד אותי שיש בדיקת null כמו שכתבת וש-
isEmptyהוא inline... אבל לא ידעתי מה הכללים בזה -
D dovid העביר נושא זה מ-תכנות ב-