Tag: Java

在kotlin中使用意外的令牌(在同一行上使用;来分隔expression式)

我正在使用java开发的android项目中使用kotlin,我在服务层中使用了kotlin数据类 现在我想添加替代标签在连载 @SerializedName(value=”name”, alternate={“person”, “user”}) val title:String, 这给了我意想不到的令牌问题,它似乎是从kotlin方面 这似乎kotlin问题可以有人指出我的问题

Android工作室不解决在IDE中使用Kotlin(.kt)编写的类,但编译正常

我正在开始使用标准的Java和部分Kotlin的一些现有的项目。 问题: 项目编译和运行良好 ,但是当在Android Studio中查看代码时, 在kotlin中编写的类在IDE中显示为未解析 。 UserConfigActivity.kt (Kotlin写的类) class UserConfigActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_user_config) setSupportActionBar(toolbar) 在标准Java类中引用/使用时未解决 (尽管编译和运行正常): 当在android studio中直接打开.kt文件时,会提示find一个插件,如下所示: 但是当我点击Install Plugins ,没有任何反应(没有安装或改变的情况)。 提示重新出现下一次我打开另一个.kt文件。 问题: 如何解决在Kotlin编写的类Cannot resolve symbol ? 如何安装提示中提供的插件,但在Install Plugins时不安装? 我在Android Studio 2.1.1 。

jackson自定义序列化程序或值对象?

几年后,我重新回到了后端开发。 我选择了Kotlin的Spring Boot。 我想有一个以域为中心的,一般的,可重用的模型对象。 对于服务调用,我希望返回特定于用例的响应,其中,有效负载进出只是特定场景的信息。 (我们可以称之为“合同优先”或“不要泄露你的胆量”) 在过去,我可能已经通过使用像Dozer这样的框架将来自可重用模型对象的信息映射到可序列化的值对象上来实现服务。 或者,我正在考虑为给定的端点注册一个自定义序列化器,例如Django Rest Framework。 (不知道这是如何工作jackson序列化通过注释)。 问题: 有没有一种简单的方法来使用jackson自定义序列化器来做我想要的? 还是继续使用我多年前使用的价值对象方法会更好?

什么是Java相当于Kotlin的函数types?

我有Kotlin代码和Java测试代码。 由于Kotlin和Mockito不是最好的朋友,所以我没有将测试代码迁移到Kotlin 。 在Kotlin我有块types的方法。 例如: open fun getProductInfo(resultListener: (List)->Unit, errorListener: (Throwable)->Unit) { … } 现在我想在Java测试中存储这个方法。 什么是types的Java相当于什么? 换句话说,我应该写下面的代码: doAnswer(invocation -> { ??? resultListener = (???) invocation.getArguments()[0]; // call back resultListener return null; }).when(api).getProductInfo(any(), any());

Android:stopService在另一个Activity中

如何在另一项活动中停止我的服务? 我在summaryActivity中启动服务 SocketServiceIntent = new Intent(this, SocketService.class); SocketServiceIntent.putExtra(“MessageParcelable”, mp); startService(SocketServiceIntent); 并从我的summaryActivity启动我的statusActivity Intent intent = new Intent(SummaryActivity.this, StatusActivity.class); intent.putExtra(“MessageParcelable”, mp); startActivity(intent); 我的问题是,我不知道如何可以给我的状态活动SocketServiceIntent。

在Kotlin试用资源

当我试图在Kotlin中编写一个与try-with-resources代码相同的代码时,它并不适用于我。 我尝试了以下的不同变化: try (writer = OutputStreamWriter(r.getOutputStream())) { // … } 但是都没有用。 有谁知道应该用什么来代替? 显然Kotlin语法没有定义这样的结构,但可能是我错过了一些东西。 它为try块定义语法如下: try : “try” block catchBlock* finallyBlock?;

我怎样才能重写一个java方法,并改变参数的可空性?

我重写了Java库中的一个方法,并且该函数的参数被注释为@NonNull 。 但是,在调用该方法时,参数经常以null值出现。 当我重写Kotlin中的方法时,它迫使我遵守@NonNull注释并将该参数标记为不可空。 当然,Kotlin在运行时抛出一个exception,当参数带有空值时。 有什么方法可以重写Kotlin中的方法,并忽略@NonNull注释? 具体来说,我使用Android的appcompat库。 该方法在AppCompatActivity.java中 @CallSuper public void onSupportActionModeFinished(@NonNull ActionMode mode) { } Kotlin中的覆盖: override fun onSupportActionModeFinished(mode: ActionMode) { super.onSupportActionModeFinished(mode) }

在java开关expression式中使用kotlin常量

我最近一直在研究Kotlin lang,并与java进行了交互。 我有以下的Java代码: public void select(int code) { switch code { case Service.CONSTANT_ONE: break; case Service.CONSTANT_TWO: break; default: break; } } Service.kt写法如下: class Service { companion object { val CONSTANT_ONE = 1 val CONSTANT_TWO = 2 } } Java编译器说,CONSTANT_ONE和CONSTANT_TWO必须是常量,但我不知道,我怎样才能使它们比现在更加稳定。 所以我的问题是:如何使用java swicth语句中的kotlin常量? 我正在使用jdk8和kotlin M14。

java.lang.NoClassDefFoundError:kotlin / jvm / internal / intrinsics in libgdx

在我的libgdx gradle应用程序中,我有一个GroundHandler类: package com.mygdx.physics import com.badlogic.gdx.ApplicationAdapter import com.badlogic.gdx.Gdx import com.badlogic.gdx.math.Vector2 import com.badlogic.gdx.physics.box2d.Fixture import com.badlogic.gdx.physics.box2d.Body import com.badlogic.gdx.physics.box2d.BodyDef import com.badlogic.gdx.graphics.OrthographicCamera import com.badlogic.gdx.physics.box2d.PolygonShape import com.badlogic.gdx.physics.box2d.World class GroundHandler(val world: World, val camera: OrthographicCamera) { private var groundBodyDef: BodyDef = BodyDef() private var groundBox: PolygonShape = PolygonShape() private var groundBody: Body? = null fun createGround() { groundBodyDef.position.set(Vector2(0f, 10f)) groundBody = […]

将Java线程转换为Kotlin

我尝试通过书“通过示例的Android游戏编程”来学习Kotlin。 现在我无法进一步创建线程。 在Java中,一个线程首先被定义为零,后来被sleep()延迟。 由于我仍然是一个新手,我不能根据我的需要定制代码。 这就是我在Kotlin中find线索的解释。 但是我不能付诸实践。 有人可以告诉我如何使用我的例子做到这一点? 我删除了线程的代码行。 public class TDView extends SurfaceView implements Runnable { //Thread related volatile boolean playing; Thread gameThread = null; //Line 29 … private void control() { try { gameThread.sleep(17); //Line 310 } catch (InterruptedException e) { //catch things here } } public void pause() { playing = false; try […]