Tag: Java

如何获取Android Studio中的用户输入数值并将其转换为kotlin中的variablesint?

大家好,我正在尝试在Android Studio中制作计算器,因为我是新的Kotlin和Java,所以对我来说很困难。 这里是我的mainActivity xml文件的源代码: 这里是我的Android mainActivity.kt文件 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main2) okactivity2.setOnClickListener{ val num1 = editText1.text val user1: Int = num1 val num2 = editText2.text val user2: Int = num2 val sum = user1 + user2 editText3.setText(“Answer is $sum”) } } 在这里,我无法将字符串editText1和editText2转换为int,所以我可以设置ediText3作为答案

我现在正在用Kotlin开发一个Android应用程序,但是发生了一个错误:CompilationException:无法将方法调用“readText”内联到

我现在正在学习kotlin,但是当我尝试使用它来进行网络请求时,AndroidStudio在我的代码中抛出了一个exception。 public class CustomRequest(val city_code:String){ fun execute():ForecastResult{ val url = URL(SERVER+PARAM) val forecastResStr = url.readText() Log.e(“MyApplication”,forecastResStr) return JSON.parseObject(forecastResStr,ForecastResult::class.java) } } 现在我不能编译我的应用程序,请help.Thanks。 这里是个例外: Error:(18, 59) org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Couldn’t inline method call ‘readText’ into fun execute():DataResult{ val resultStr = URL (COMPLETE_URL+city_code).readText() return JSON.parseObject(resultStr,SomeClass::class.java) } cause: Not generated Cause: List has more than one element. […]

从exec kotlin读取输出

我需要执行一个jar文件,并将执行的进程的输出重定向到主进程的输出。 我使用下面的代码: val command = “java.exe -version” val p = Runtime.getRuntime().exec(command) val buf = p.getInputStream() val inputAsString = buf.bufferedReader().use { it.readText() } println(inputAsString) 我没有输出… 我测试了这个代码: val command = “cmd /c chcp” val p = Runtime.getRuntime().exec(command) val sc = Scanner(p.inputStream) println(sc.nextLine()) sc.close() 我有一个输出,但是当我替换“cmd / c chcp”时,我有一个错误… 如何读取“ok”的“test.jar”输出?

预期types不接受Java中的空值,但Kotlin中的值可能为空

我正在构建一个运动应用程序,并在编译期间遇到问题。 getCachedSubmission函数内部的提交variables为null,似乎需要一个空的句柄,但我不确定。 这是下面的代码: import com.bluebeam.premierleaguego.features.model.SubmissionWrapper import com.bluebeam.premierleaguego.data.reddit.RedditAuthentication import com.bluebeam.premierleaguego.data.service.RedditService import com.google.common.base.Optional import io.reactivex.Single import net.dean.jraw.models.CommentSort import net.dean.jraw.models.Submission import java.util.* import javax.inject.Inject import javax.inject.Singleton import javax.annotation.Nullable /** * Implementation of the [SubmissionRepository] interface. Stores [SubmissionWrapper]s in a map * keyed by their id. * TODO: should there be a limit to how many submissions are cached? […]

基于科林地图的属性和jackson不工作 – 委托点不同的地图,即地图属性

我试图通过使用委托属性将一些结构引入到我们当前的模型中,并且发现了这种奇怪的行为 为了简单,可以说我们有这个类: class Test{ val data:MutableMap = mutableMapOf() var classProp:String by data } 和这个字符串”{\”data\”:{\”classProp\”:\”propValue\”}}” 在调试中使用jackson映射器(带或不带kotlin模块和kotlinreflection ) 调试variableswatch 你可以看到属性数据指向了一个不同的对象,然后是classProp的委托 你能告诉我做错了什么吗? jackson如何将一个新对象设置为已经初始化的val 我可以命令jackson使用现有的地图,而不是创建一个新的地图 谢谢

Kotlin Firebase存储imageUri错误

参考.putFile(imageUri) kotlin.UninitializedPropertyAccessException: lateinit property imageUri has not been initialized at com.ysnel.envantert.StandUpdate.update(StandUpdate.kt:177) at com.ysnel.envantert.StandUpdate.access$update(StandUpdate.kt:19) at com.ysnel.envantert.StandUpdate$onCreate$3.onClick(StandUpdate.kt:73) at android.view.View.performClick(View.java:5076) at android.view.View$PerformClick.run(View.java:20279) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5930) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)

types推断在kotlin中失败

我在JSONArray类上创建了一个扩展函数iterator() ,并在for循环中使用了下面的错误: Type inferece failed: Not enough information to infer parameter T in operator fun JSONArray.iterator () L Iterator 我的代码是: class GetFlickrJsonData(private val mCallBack: OnDataAvailable, private var mBaseUrl: String, private var mLanguage: String, private var mMatchAll: Boolean) : GetRawData.OnDownLoadComplete { init { Log.d(TAG,”GetFlickrJsonData Called”) } companion object { private val TAG = “GetFlickrJsonData” } private […]

使用Gson和Kotlin进行无漏网络响应

假设你有这样的数据类pojo,它表示典型的基于gson的响应表示来自服务器。 data class User( @field:SerializedName(“id”) val id: String, @field:SerializedName(“name”) val name: String, @field:SerializedName(“user_phone”) val phone: String?) ID和名称字段是必需的, 电话字段是可选的 所以这个模型所期望的适当的json,例如: { “id”: “someHash”, “name”: “John Snow” } 有时服务器可以发送json,如: { “id”: “someHash” } 不幸的是,这样的json解析成功没有任何错误,因为gson使用不安全的reflection ,并为Java编写。 所以作为结果将有损坏kotlin模型与空值存储在非空字段 我想在json反序列化层上为这个模型提供validation,因为最好是在那里接收一个错误,而不是在应用程序的任何其他部分,这个部分需要非空字段。 我正在寻找这个问题的任何consize解决方案。 当然,你可以为每个模型提供一些明确的validationfunction fun User.validate() { if (id == null) throw JsonParseException(“‘id’ is null!”) if (name == null) throw JsonParseException(“‘name’ is […]

即使在androidTest包中,Kotlin类也会作为junit测试运行 – 对于Java类,它运行正常

我遇到了非常奇怪的错误。 当我尝试运行测试,在我的Kotlin类的androidTest包,他们正在运行测试junit mehthods,并出现此错误: 处理完成退出代码1未find类:“com.someampp.shoppinglistapp.SomeClassTest”空测试套件。 你可以自己尝试。 我正在使用Android Studio 3.0.1 当我在Java中创建这样的类时: @RunWith(AndroidJUnit4.class) public class SomeTestClass{ @Test public void useAppContext() throws Exception { // Context of the app under test. Context appContext = InstrumentationRegistry.getTargetContext(); assertEquals(“com.myapp.shoppinglistapp”, appContext.getPackageName()); } } 一切工作正常。 但是,当我将Java文件转换为Kotlin: @RunWith(AndroidJUnit4::class) class SomeTestClass{ @Test @Throws(Exception::class) fun useAppContext() { // Context of the app under test. val appContext = […]

为什么Kotlin的map-filter-reduce比Java的Stream操作在大输入上要慢?

前几天我创建了一个简单的基准(没有jmh和所有其他专业的东西,只是粗略地测量)。 我发现,对于同样简单的任务(遍历1000万个数字,将它们平方,只过滤偶数并减少它们的总和),Java工作得更快。 代码如下: 科特林: fun test() { println((0 .. 10_000_000L).map { it * it } .filter { it % 2 == 0L } .reduce { sum, it -> sum + it }) } Java的: public void test() { System.out.println(LongStream.range(0, 10_000_000) .map(it -> it * it) .filter(it -> it % 2 == 0) .reduce((sum, it) -> […]