Tag: Java

IndexOutOfBoundsException for Kotlin for循环

我有两个相同大小的Kotlin列表, foodObjects: MutableList<ParseObject>? 并checked: MutableList<Boolean>? 。 我需要做一个for循环,每次checked一个元素为true时,从foodObjects获取objectId。 所以这是在Java中: for(int i = 0; i< foodObjects.size(); i++) { //here } 但是在科特林,我不知道为什么,有一些问题。 事实上,如果我这样做: for(i in 0..foodObjects!!.size) { if (checked?.get(i) == true) { objectsId?.add(foodObjects.get(i).objectId) } } 我有IndexOutOfBoundsException :我不知道为什么,它继续在foodObjects.size循环。 我也可以用过滤器和地图来做到这一点: (0..foodObjects!!.size) .filter { checked?.get(it) == true } .forEach { objectsId?.add(foodObjects.get(it).objectId) } 但是我给了同样的错误。 我需要停止使用这个如果: for(i in 0..foodObjects!!.size) { if(i < foodObjects.size) […]

在kotlin中找不到类?

Intent intent=new Intent(MainActivity.this, ContactListActivity.class); startActivity(intent); MainActivity.this是用java编写的,ContactListActivity是用kotlin编写的。 我想调用ContactListActivty,但最终得到错误 have you declared this activity in your AndroidManifest.xml? 我还在清单文件中添加了该活动。 <activity android:name="Chat_Activity$Connections$ContactListActivity" android:parentActivityName=".MainActivity"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity"/> </activity> 编辑: ContactListActivity.kt class ContactListActivity : AppCompatActivity() { private var mBroadcastReceiver: BroadcastReceiver? = null private val TAG:String="ContactListActivity" //static variable object Obz{ @JvmStatic val GetContactListFromServer:String="Contact List" } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(layout.activity_contact_list) […]

创建和发布Kotlin库以避免多个运行时问题的正确方法是什么?

我有一个Kotlin库,我想发布到Maven仓库,并在其他应用程序中使用。 但是,当我把它作为依赖(到pom.xml )在我的Kotlin应用程序中添加时,我得到这个警告: [WARNING] Some JAR files in the classpath have the Kotlin Runtime library bundled into them. This may cause difficult to debug problems if there's a different version of the Kotlin Runtime library in the classpath. Consider removing these libraries from the classpath or use '-Xskip-runtime-version-check' to suppress this warning [WARNING] ………mylib.jar: (-1, […]

在Android Studio中将“java”目录重命名为“kotlin”

我的android项目是100%写在Kotlin,我想重新命名为kotlin的java目录是一致的。 我补充说 sourceSets {main.java.srcDirs + ='src / main / kotlin'} 以gradle并重命名目录。 所有的编译和工作正常。 唯一的问题是,当我在项目选项卡中,在“Android”视图目录仍然名为“java”(如果我切换到项目视图的下拉列表中,我确实看到“kotlin”tho)。 我错过了什么?

Kotlin java抽象类IllegalAccessError

我有一个java interop和Kotlin的问题我有一个包被保护的java抽象类AbstractTest,它被用作另一个类TestHolder中的成员。 当我创建抽象类的派生实例Test,并尝试在kotlin中使用它时,我得到: java.lang.IllegalAccessError:试图从类KotlinTest访问类test.AbtractTest 相同的代码的Java版本似乎工作正常,但… package test; abstract class AbtractTest { } package test; public class Test extends AbtractTest { } package test; public class TestHolder { private AbtractTest test; public AbtractTest getTest() { return test; } public void setTest(AbtractTest test) { this.test = test; } } public class JavaTest { private TestHolder testHolder; public […]

Kotlin多点击按钮上的听众

所以对于kotlin来说,我想知道如何将多个点击事件添加到xml中定义的按钮中,就像以前在Java中一样,我们实现了View.onClickListener接口,并在onClick方法中完成其余的工作。 例如: @Override public void onClick(View v) { switch (v.getId()) { case R.id.oneButton: // do your code break; case R.id.twoButton: // do your code break; case R.id.threeButton: // do your code break; default: break; } } 我正在用新的Kotlin制作一个基本的计算器应用程序,但似乎Kotlin没有这样的规定,而是我的代码看起来太长而冗长,因为我将事件附加到所有按钮单独。 有人能告诉我如何在科特林做同样的方式吗? 谢谢

将不推荐使用的方法从Java转换为Kotlin

我使用Android Studio将代码从Java转换为Kotlin,但是我遇到了问题。 当我使用这个: MenuItemCompat.setOnActionExpandListener(MenuItem.OnActionExpandListener) Android Studio告诉我, setOnActionExpandListener在Java中已被弃用。 那么我怎样才能转换这个代码在Kotlin? 谢谢 !

在Kotlin中创建一个抽象类的实例

我是Kotlin的新手,我试图在Android项目中使用它。 我有这个代码: public var oneTouchTimer: CountDownTimer = CountDownTimer(500, 100) { override fun onTick(l: Long) { } override fun onFinish() { } } 这是抛出错误: Cannot create an instance of an abstract class. 基本上我试图创建一个CountDownTimer的实例,并不知道如何将其转换为Kotlin。 这是Java中的代码: CountDownTimer oneTouchTimer = new CountDownTimer(500, 100) { @Override public void onTick(long l) { } @Override public void onFinish() { } };

用Mvvmfx框架使用kotlin

我正在用JavaFx开发一个桌面应用程序。 我有兴趣使用Mvvmfx作为框架,并想知道是否可以使用Kvlin和Mvvmfx来避免所有样板代码? 有没有这个地方的例子?

Kotlin中的val可插入类

我正在研究Gradle-Kotlin-Hibernate项目。 我想保留一些不可改变的类,这在Kotlin中特别容易。 这对@Entity来说很好 @Entity(name = "SOMETHING") class MeetingKeychain( val immutableProp: String ) { // ID and others } 感谢kotlin-jpa插件的使用。 但是相同的插件不能用于@Embeddable 。 @Embeddable class MeetingKeychain( val immutableProp: String ) { // ID and others } 引发以下异常: Caused by: org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.component.PojoComponentTuplizer] at org.hibernate.tuple.component.ComponentTuplizerFactory.constructTuplizer(ComponentTuplizerFactory.java:98) at org.hibernate.tuple.component.ComponentTuplizerFactory.constructDefaultTuplizer(ComponentTuplizerFactory.java:119) at org.hibernate.tuple.component.ComponentMetamodel.<init>(ComponentMetamodel.java:64) at org.hibernate.mapping.Component.getType(Component.java:169) at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:398) at […]