Kotlin:指定的types参数会导致Gson失败

我遇到了一个奇怪的行为,使用reifiedtypes的函数内的Gson反序列reified 。 只有当interfaces涉及到types参数时才会发生。 采取以下代码: val toBeSerialized = listOf(“1337”) with(Gson()) { val ser = toJson(toBeSerialized) val deser = fromJson<List>(ser) } 第4行使用自定义扩展函数Gson.fromJson(json: String): T 。 如果T被定义为物化,它就会失败 : inline fun Gson.fromJson(json: String): T = fromJson(json, object : TypeToken() {}.type) 如果它被定义为一个正常的types参数,它就可以工作 : fun Gson.fromJson(json: String): T = fromJson(json, object : TypeToken() {}.type) (请注意,使T化在这里没有意义,只是想了解它在特殊用例中的影响) 使用reified外观时的例外情况如下: Exception in thread “main” java.lang.RuntimeException: […]

Android Kotlin把任何东西都转换成对象

你可以帮我吗? ,我有一个对象,它有一个参数addressId可以是一个字符串或从服务器的另一个复杂的对象如下: class Person(val _id: String?, val name: String?, val date: Date?, val addressId: Any?, val imageURL: String?, ){ } 然后我试图在必要时投射到我的地址对象。 但是当我使用: val address = item.addressId as Address 我得到了错误: java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast 我也试过: val address = item.addressId as Address? 该对象不会与该地址的数据一起投射。

无法在Kotlin中使用Jackson分析json

我有从服务器返回的下一个JSON {“s”:2,”v”:[[{“g”:”value”},{“s”:”value”},{“t”:”value”}],[{“g”:”value”},{“s”:”value”},{“t”:”value”}]]} 我得到一个错误解析这个,所以我应该如何建立我的类? 我现在有: companion object { class ResponseDataModel { @JsonProperty(“s”, required = true) var s: Int = 0 @JsonProperty(“v”, required = true) lateinit var v: Array } class ValueResponseDataModel { @JsonProperty(“s”, required = true) lateinit var s: String @JsonProperty(“t”, required = true) lateinit var t: String } } 值g被忽略 val mapper = ObjectMapper().registerKotlinModule() var […]

Android Kotlin – Volley意外的响应代码500

我使用Django Rest Framework创建了REST API。 目前,我正在为我的网站开发移动应用程序。 当我做POST请求(这是我的应用程序中的第二个POST请求),我得到这个错误: E / Volley:[385] BasicNetwork.performRequest: http ://laude.ct8.pl/api/user/data/aktualizacja/意外的响应代码500 这是我的代码: private val UPDATE_URL = “http://laude.ct8.pl/api/user/data/aktualizacja/” private var volleyRequest: RequestQueue? = null private val jsonObj = JSONObject() volleyRequest = Volley.newRequestQueue(this) private fun aktualizacja() { jsonObj.put(“librus_user”, usernameEdit.text) jsonObj.put(“librus_pswd”, passwordEdit.text) val req = JsonObjectRequest(Request.Method.POST, UPDATE_URL, jsonObj, Response.Listener { response -> Toast.makeText(this, response.toString(), Toast.LENGTH_LONG).show() val user […]

Android中的Kotlin“内部”​​可见性修改器

假设你正在编写一个Android项目( 而不是一个库 )。 所有的文件都汇编在一起,所以…在这种情况下使用internal可见性修饰符是否有意义?

Android与Kotlin – 如何使用HttpUrlConnection

我试图从一个AsyncTask的url获取数据,但是在创建HttpUrlConnection的新实例时出现HttpUrlConnection 。 在Java上是这样的 URL url = new URL(“http://www.android.com/”); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); try { InputStream in = new BufferedInputStream(urlConnection.getInputStream()); readStream(in); finally { urlConnection.disconnect(); } 但我不断收到如下所示的错误。 class GetWeatherTask : AsyncTast() { override fun doInBackground(vararg params: Void?): Void? { val httpClient = HttpURLConnection(); return null } override fun onPreExecute() { super.onPreExecute() } override fun onPostExecute(result: Void?) […]

如何在使用Kotlin多平台时在Firebase的Cloud Functions中包含简单的JavaScript文件作为节点依赖项?

我想包括一个JavaScript文件作为模块依赖。 它是由Kotlin多平台生成的,它被称为common-js.js 。 这是我的package.json一部分: “dependencies”: { “common-js”: “file:common-js” } 我把这个文件放到了node_modules/common-js.js ,它可以和node_modules/common-js.js firebase serve一起工作,没有任何问题。 但是,当我运行firebase deploy ,部署将失败: Build failed: exit status 254 npm ERR! addLocal Could not install /workspace/common-js 如何使用云function来实现这一点? 我尝试把它放在其他目录比node_modules但它甚至不能在本地工作。

Android Kotlin子onClick阻止父OnTouch

我有这个布局层次结构: 我已经触摸父LinearLayout事件像这样: parent.setOnTouchListener(myCustomTouchParent) class MyCustomTouchParent(ctx: Context): View.OnTouchListener { private var isScrollingDown = false private var isScrollingUp = false private val myGestureDetected = GestureDetector(ctx, MyGestureListener()) var onRecyclerViewMovingDown: (() -> Unit)? = null override fun onTouch(p0: View?, e: MotionEvent): Boolean { myGestureDetected.onTouchEvent(e) when(e.action){ MotionEvent.ACTION_UP -> { if (isScrollingDown) { onRecyclerViewMovingDown?.invoke() } } MotionEvent.ACTION_DOWN -> { Log.i(“TAg”, “Action […]

使用mockito的Kotlin协同程序unit testing

当我尝试模拟和validation一个正在调用暂停function的活动时,我得到了下面的内容 错误: 论据是不同的! 通缉:userManager.getAccountInfo((onCreate_callsGetAccountInformation $ 1)kotlinx.coroutines.experimental.CoroutineScope。() – > kotlin.Unit); – > at com.pharmacy.AccountActivityTests $ onCreate_callsGetAccountInformation $ 1.doResume(AccountActivityTests.kt:117)实际的调用有不同的参数:userManager.getAccountInfo(()kotlinx.coroutines.experimental.CoroutineScope。() – > kotlin.Unit) – > at com.pharmacy.AccountActivity $ loadAccountInfoAsync $ 1 $ 1.doResume(AccountActivity.kt:199) 码: 我有我的unit testing用runBlocking装饰如下所示: @Test fun onCreate_callsGetAccountInformation() = runBlocking { whenever(userManager.getAccountInfo()).thenReturn(AccountInformation()) subject = Robolectric.setupActivity(AccountActivity::class.java) verify(userManager).getAccountInfo() } 这里 – > usermanager.getAccountInfo()是一个挂起的函数。

如何在不使用stdlib的情况下使用KotlinJS?

由于在大多数情况下我们有这样的: dependencies { compile “org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version” } 而Kotlin标准库似乎对我来说很大。 我想通过只声明我需要的external方法来创建我自己的stdlib(它可以更小)来最小化它。 我试图删除该方法,它编译,但生成的JS代码有这样的: if (typeof kotlin === ‘undefined’) { throw new Error(“Error loading module ‘streaking’. Its dependency ‘kotlin’ was not found. Please, check whether ‘kotlin’ is loaded prior to ‘streaking’.”); } 这意味着stdlib中一定有必要的东西,我不知道。 由于我的要求如上所述,是否有任何解决方法? 或者我怎样才能减少生成的代码的大小?