Как равняется Kotlin & Java BasicTypes - PullRequest
0 голосов
/ 09 июля 2019

Я хочу getTypeByClass() в моем приложении для Android.Эта функция меняет класс на строку.

    public fun getTypeByClass(type: Class<*>): String {
        return if (type == String::class.java) {
            "TEXT"
        } else if (type == Long::class.java) {
            "INTEGER"
        } else {
            "NULL"
        }
    }
   System.err.println(getTypeByClass(Long.class));

Вывод NULL ,, но мне нужно INTEGER.

И я декомпилирую класс

return Intrinsics.areEqual(type, String.class) ? "TEXT" : (Intrinsics.areEqual(type, Long.TYPE) ? "INTEGER" : "NULL");

Long::class.java соответствует Long.TYPE

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

KOTLIN

Детская площадка Kotlin: редактировать, запускать, делиться Kotlin Code Online

 /**
 * You can edit, run, and share this code. 
 * play.kotlinlang.org 
 */

fun main() {
    println("Hello, world!!!")
    var var1 = 10L as Long 
    println(getTypeByClass(var1::class.java))
}
fun getTypeByClass(type: Class<*>): String 
{
        return if (type == String::class.java) {
            "TEXT"
        } else if (type == Long::class.java) {
            "INTEGER"
        } else {
            "NULL"
        }
 }

JAVA

    /******************************************************************************

                            Online Java Compiler.
                Code, Compile, Run and Debug java program online.
Write your code in this editor and press "Run" button to execute it.

*******************************************************************************/

public class Main
{
    public static void main(String[] args) {
        Long x = 10L;
        String s = "";
        System.out.println(getType(s));
    }
    public static String getType(Object object)
    {
        if(object.getClass().equals(Long.class) || object.getClass().equals(Double.class) || object.getClass().equals(Integer.class) || object.getClass().equals(Float.class))
        {
            return "INTEGER";
        }
        else if(object.getClass().equals(String.class))
        {
            return "STRING";
        }
        return "UNKNOWN";
    }
}
0 голосов
/ 09 июля 2019

Вы можете использовать - оператор .Сошлитесь на проверки типа и приведение в kotlin https://kotlinlang.org/docs/reference/typecasts.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...