Tag: Java

宏在工具支持

Comment from discussion abreslav’s comment from discussion "Kotlin Team AMA: Ask Us Anything". 传统的宏很难在工具中得到很好的支持 在Java中,我们已经有了Lombok @Data生成方法,几乎​​和宏一样。 https://projectlombok.org/features/Data 为什么宏在工具上很难支持?

三个测试容器从哪里来?

我把一个演示JUnit5项目放在一起来试用这个框架。 该项目包括Gradle(4.4),Java(8)和Kotlin(1.2.0)四个测试用例。 我有下面的Gradle构建脚本(我已经删除了大部分的样板,只保留重要的东西): apply plugin: ‘java’ apply plugin: ‘kotlin’ apply plugin: ‘org.junit.platform.gradle.plugin’ repositories { mavenCentral() } buildscript { ext.kotlin_version = ‘1.2.0’ repositories { mavenCentral() } dependencies { classpath ‘org.junit.platform:junit-platform-gradle-plugin:1.0.2’ classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” } } configurations { all { exclude group: ‘junit’, module: ‘junit’ } } project.ext { junitPlatformVersion = ‘1.0.2’ junitJupiterVersion = ‘5.0.2’ } dependencies { […]

如何解决:错误:执行失败的任务’:app:kaptDebugKotlin’?

请帮助我我几天来一直在盯着这个相同的错误。 我运行的是android studio 2.3(我也遇到了android studio 3.0的这个问题)。 这是我的消息中显示的内容: 错误:执行任务’:app:kaptDebugKotlin’失败。 内部编译器错误。 查看日志了解更多详情 这是我的日志给我更多的细节: 2017-09-01 21:09:57,768 [34977075]信息 – roid.sdk.MessageBuildingSdkLog – 来自KotlinOutputParser的exception2017-09-01 21:09:57,771 [34977078]信息 – roid.sdk.MessageBuildingSdkLog – com.android.ide .common.blame.Message。(com.android.ide.common.blame.Message $ Kind,java.lang.String,java.lang.String,com.google.common.collect.ImmutableList)java.lang.NoSuchMethodException: (com.android.ide.common.blame.Message $ Kind,java.lang.String,java.lang.String,com.google.common.collect.ImmutableList)at在java.lang.Class.getConstructor(Class.java:1825)的org.jetbrains.kotlin.android.KotlinOutputParserHelper $ simpleMessageConstructor $ 2.invoke(KotlinOutputParserHelper.kt:171 )at org.jetbrains.kotlin.android.KotlinOutputParserHelper $ simpleMessageConstructor $ 2.invoke(KotlinOutputParserHelper.kt:143)at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:130)at org.jetbrains.kotlin.android.KotlinOutputParserHelper.getSim 请参阅org.jetbrains.kotlin.org上的org.jetbrains.kotlin.android.KotlinOutputParserHelper.createMessage(KotlinOutputParserHelper.kt:250)处的orMe.jetbrains.kotlin.android.KotlinOutputParserHelper.createNewMessage(KotlinOutputParserHelper.kt:272)中的pleMessageConstructor(KotlinOutputParserHelper.kt) .android.KotlinOutputParserHelper.createMessage $ default(KotlinOutputParserHelper.kt:244)at org.jetbrains.kotlin.android.KotlinOutputParserHelperKt.parse(KotlinOutputParserHelper.kt:41)at org.jetbrains.kotlin.android.KotlinOutputParser.parse(KotlinOutputParser.java :28)at com.android.ide.common.blame.parser.ToolOutputParser.parseToolOutput(ToolOutputParser.java:86)at com.android.tools.idea.gradle.output.parser.BuildOutputParser.parseGradleOutput(BuildOutputParser.java:43 )at com.andll.tools.idea.gradle.project.build.invoker.GradleTasksExecutor $ GradleTasksExecutorImpl.lambda […]

removeAll – 修改源列表

在我的项目中,我使用了两次removeAll方法。 在第二次,我必须使用列表的副本,因为源列表通过首先使用removeAll方法进行修改。 有没有办法做到这一点,而不做副本的清单? val apiIdListCopy: MutableList = apiIdList apiIdList.removeAll(dbIdList) dbIdList.removeAll(apiIdListCopy) 编辑:对于未来的观众,我发现在Kotlin更容易的解决方案 val api: List = apiIdList.stream().filter{item -> !dbIdList.contains(item)}.collect(Collectors.toList()) val db: List = dbIdList.stream().filter{item -> !apiIdList.contains(item)}.collect(Collectors.toList())

在Gradle中分割所有输出目录

Gradle 4.0昨天出来,我更新了我的项目。 现在我收到以下警告: Gradle现在为每个JVM语言使用单独的输出目录,但是这个版本假设源集合中所有类的单个目录。 这个行为已经被弃用,并计划在Gradle 5.0中被删除 我想为每种语言使用单独的输出目录。 为了做到这一点,我需要改变什么? 我试过的东西: 随后由gradle build gradle clean 删除构建目录,然后运行gradle build 。 删除gradle和build目录然后运行gradle 相关的GitHub 问题 Gradle插件: java的 蚀 理念 org.springframework.boot

在Android Studio的“工具”菜单下没有出现Android菜单。 如何把它提出来?

我正在尝试使用AVD管理器制作模拟器,但是我需要转到“工具”下的Android菜单。 它不在(Firebase和Kotlin是,虽然)。 我怎样才能在这里的Android菜单?

在Android设备上使用Java / Kotlin检测音频文件(amr)中的静音

有没有我用来实现这个的库或方法? 我知道我必须一次一个地读取文件中的字节,检查它们的值是否低于或高于特定的阈值并检测到静音。 但是,我似乎无法find一个库来计算音频文件的有效值或阈值

如何为接口中的属性指定@Throws

我目前正在将一些Java RMI代码移植到Kotlin。 Java中的传统接口是: interface Foo: Remote { Bar getBar() throws RemoteException } 在运行自动迁移工具之后,字段bar被更改为一个属性: interface Foo: Remote { val bar: Bar } 但是,在迁移的程序中, getBar不再被标记为throws RemoteException ,这将导致在RMI调用中illegal remote method encountered错误。 我想知道是否有任何方式来标记@Throws的财产?

Java / Android / Kotlin:关于私人领域的反思和调用公共方法

是否可以使用reflection来访问对象的私人领域,并调用该领域的公共方法? 即 class Hello { private World word } class World { public BlaBlaBla foo() } Hello h = new Hello() World world = reflect on the h // And then world.foo()

Intellij Idea kotlin不能自动导入一些运算符函数,例如+

例如: 类common.number.Number.kt : operator fun Int.plus(other: BigInteger): BigInteger { return BigInteger(this.toString()).add(other) } Class common.test.Test.kt : var i = 1 + BigInteger(“1”) 然后,Intellij Idea在Test.kt类中显示错误。 但是,如果我添加以下导入,错误消失: import common.number.Number.plus 我怎样才能让IntelliJ Idea自动导入这个操作函数?