欧拉项目#1

我只在三天前开始编程,而且一直在使用Javascript。 我一直在努力解决欧拉项目问题1 : find1000以下所有3或5的倍数的总和。 而且我觉得我的程序应该可以工作,但我的答案仍然有些偏离。 任何人都可以告诉我我的代码有什么问题吗? var threeSum = []; var threeTotal = 0; var fiveSum = []; var fiveTotal = 0; for (i = 0; i < 1000; i += 3) { threeSum.push(i); } for (j = 0; j < threeSum.length; j++) { threeTotal = threeTotal + threeSum[j]; } for (a = 0; a […]

如果活动写在Kotlin中,Button onClick属性是none

按照这个教程: Android的 – 开始另一个活动,如果我做了MainActivity.java按钮OnClick属性有sendMessage()方法。 但是,如果我做了MainActivity.kt按钮OnClick属性已经注意到显示。 只是一个none 。 这是一个Android Studio 3的错误,或者我错过了Kotlin的东西? Java mainActivity: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /** Called when the user taps the Send button */ public void sendMessage(View view) { // Do something in response to button } } Kotlin mainActivity: class MainActivity […]

Kotlinreflection – 获取一个类的所有字段名称

我怎样才能得到一个Kotlin数据类的declaredFields它的declaredFields ? 像Java的getDeclaredFields() 如果这是可能的,是否也可以过滤public和private领域? (像Java的Modifier.isPrivate(field.getModifiers()) )

Kotlin代码如何在Android应用程序中执行,与Java有什么不同?

我正在学习Kotlin,并希望了解编译后的代码是如何执行的,这与Java代码执行Android有什么不同。 我也想知道为什么我们编写MainActivity::class.java ( class.java )来引用类文件。 谢谢!

在展平之前在RxJava中设置一个variables

Observable 从调用getSomething()返回。 Foo有一个列表,基本上是我想要的数据。 我需要过滤清单,所以我把它弄平了。 不过,我需要从Foo的另一个数据在subscribe.onNext()中设置一个variables。 我想要设置的variables是kotlin类的一个默认setter的成员。 我确实试图从地图返回@地图,但这似乎阻止了排放,使得filter无法使用。 我确实在其他线程中查看了Pair和Observable嵌套,但还没有发现它有帮助。 我也看了flatMapIterable的第二个重载的版本与一个Func2,但没有得到它吐出限制。 在这种情况下,我如何正确应用上面的任何一个,或者是否有另一个更简单的解决方案? service.getSomething() .subscribeOn(Schedulers.io()) —> here I need to set limit = Foo.data.limit .flatMapIterable { t -> t.data.results } .filter({ s -> filterLogic(s) }) .toList() .observeOn(AndroidSchedulers.mainThread()) .subscribe( { c -> //this is the list, not Foo

Java类名中的Kotlin中的静态常量

我通常在Java中有这个: package some.package; public class Clz { public static final String ACTION_DIVE = Clz.class.getName() + “.action.DIVE”; } 可以从Clz.ACTION_DIVE以外的类访问,值为”some.package.Clz.action.DIVE” 。 我怎么能在Kotlin class Clz做同样的Clz以便可以从外部的Java类以相同的方式访问它? 我尝试了以下,但它不编译,因为它不是一个常量: package some.package object Clz { const val ACTION_DIVE = Clz.javaClass.name + “.action.DIVE” }

Kotlin访问Java类

为什么在Kotlin中,你需要访问它们使用的对象的Java类 MyActivity::class.java 我被告知与Kotlin与JS的互操作性…有什么想法?

Kotlin:unit testing期间@JvmStatic方法NoClassDefFoundError / ClassNotFoundException

这是我试图从我的unit testing调用的类 package bj.discogsbrowser.artistreleases class ArtistResultFactory { companion object { @JvmStatic fun buildArtistResult(members: Int): ArtistResult { val artistResult = ArtistResult() artistResult.nameVariations = listOf(“ye”) artistResult.dataQuality = “really good quality, we have the best qualities” return artistResult } } } 这是测试的样子: @Test fun setArtistNoMembers_displaysNoMembers() { controller.setArtist(ArtistResultFactory.buildArtistResult(0)) … assertEquals(copyOfModels.size, 8) } Java中的相同测试(也失败了): @Test public void setArtistNoMembers_displaysNoMembers() { controller.setArtist(ArtistResultFactory.buildArtistResult(0)); […]

无法使用kotlinx.serialization将Json解析为数据类

在Android项目中,我试图使用kotlinx.serialization和Retrofit从远程端点解析Json响应。 我在使用Jake Warthon的https://github.com/JakeWharton/retrofit2-kotlinx-serialization-converter来设置转换器时设置改造实例 Retrofit.Builder() .baseUrl(baseUrl) .addConverterFactory(stringBased(contentType, ::parse, ::stringify)) .addCallAdapterFactory(CoroutineCallAdapterFactory()) .build() 我有以下模型注解@Serializable,我想用来解析Json响应 import kotlinx.serialization.Serializable @Serializable data class Response(val groups: List<GroupsResponse>) 请注意,Response和嵌套的GroupsResponse都定义了一个通用types。 我一直在浏览文档,但是我一直无法理解generics和kotlinx.serialization是如何一起玩的,尽管它提到它支持generics,并且您应该使用生成的序列化方法访问那些模型的序列化程序 。 我已经建立了项目使用正确的插件按照kotlinx.serialization和Jake的库的文档,但问题是,该项目甚至不编译,因为我正在得到以下types的错误,当构建过程执行kaptDebugKotlin gradle任务 e: /Users/nico/Dev/git/edreams/workshops/K-Places/data/build/tmp/kapt3/stubs/debug/com/edreams/android/workshops/kotlin/data/venues/remote/response/Response.java:75: error: non-static type variable T cannot be referenced from a static context public static final class $serializer implements kotlinx.serialization.KSerializer<com.edreams.android.workshops.kotlin.data.venues.remote.response.Response> { e: /Users/nico/Dev/git/edreams/workshops/K-Places/data/build/tmp/kapt3/stubs/debug/com/edreams/android/workshops/kotlin/data/venues/remote/response/GroupsResponse.java:109: error: cannot find symbol kotlinx.serialization.KSerializer typeSerial0) { […]

如何在Kotlin中初始化一个数组?

在Java中,可以初始化一个数组,例如: int numbers[] = new int[] {10, 20, 30, 40, 50} Kotlin的数组初始化是怎样的?