Tag: Java

默认参数和@JvmOverloads如何在Kotlin上工作?

当我们像Kotlin一样创造乐趣的时候 fun foo(bar: Int = 0, baz: Int) { /* … */ } foo(baz = 1) // The default value bar = 0 is used 所以在Java中,我们需要这样写它 不需要写 void foo(int bar, int baz){ … } void foo(int baz){ foo(0,baz); } 假设我们有10个以上的参数。 我想知道Kotlin如何处理这个问题。 Kotlin会生成所有可能的方法吗? 或者它只是产生程序员真正使用的方法?

写作单元在Kotlin测试,共享变量?

我正在尝试在Kotlin中创建一些功能测试,以使用Rest Assured库向购物车Java服务器发出请求。 因为我希望测试的行为程序,我希望我可以存储第一个A​​PI请求的结果,并将其传递到下一个单元测试。 即 createCartTest() – > cartId – > getCartForWebsiteTest(cartId) class CartTest : RestAssuredSupport { val port = 8080 val url = "http://localhost:" val cartId = null /** * Create a cart object */ @Test fun createCartTest() { given(). now(). body("websiteId=1"). contentType(ContentType.URLENC). post(url + port + "/orders/cart/create.do"). then(). statusCode(200). body("summary.numItems", equalTo(0)). body("summary.visibleNumItems", equalTo(0)). body("summary.cartId", […]

为什么@Primary有时候不适用于Kotlin类?

我有最怪的问题。 我有Java类A ,我也有Kotlin类KA扩展A ,都是@Component s, KA也用@Primary注释。 在一些组件中, KA是自动装配的,而在其他组件中是A 实际上它比这更奇怪,对于不同的应用程序启动之间的相同的依赖bean,有时候KA会自动装入,有时是A 如果我用Java重写KA ,那么一切都按预期工作。 所有相关类中的属性名称/构造函数参数名称是相同的: @Autowired A a; 。 也不要紧,如果我的Kotlin实现实现一个通用的接口或扩展基类。 所有Kotlin和Java类都生活在src/main/java 。 Kotlin版本是1.1.2-5 ,我用的是jvm8。

在Android Studio中将Java文件传输到Kotlin中

随着Android 3.0的发布,我注意到它现在支持Kotlin。 我也看到有一个Java to Kotlin“转换器”,如果你愿意的话。 我在Android Studio上有一个中等大小的项目,我一直在使用Java,我想知道把所有东西都转换成Kotlin是明智的。 Kotlin值得把我所有的文件转换成语言吗?

Kotlin + Dagger2 @模块提供者方法用法中的注释

我在Kotlin中使用Dagger 2 @Named注解时出现了一个问题,那就是阻止我将Dagger图形移植到Kotlin。 当我需要在Dagger模块方法中注入一个@Named参数时,会出现问题。 在这种情况下,我不是通过构造函数或字段注入它。 我已经尝试了所有Kotlin注释使用网站的目标,并没有一个似乎在方法参数中工作。 请,任何解决方案将非常感激。 下面是转换成Kotlin的java代码部分不会编译: @Module public final class MyModule { (…) @Provides @Singleton LoginStore provideLoginStore(@Named("main_dao_session") DaoSession mainDaoSession, @Named("demo_dao_session") DaoSession demoDaoSession) { return new LoginStoreImpl(mainDaoSession, demoDaoSession); } (…) }

将Java线程转换为Kotlin

我尝试通过书“通过示例的Android游戏编程”来学习Kotlin。 现在我无法进一步创建线程。 在Java中,一个线程首先被定义为零,后来被sleep()延迟。 由于我还是一个新手,我无法根据自己的需要定制代码。 这就是我在Kotlin中找到线索的解释。 但是我不能付诸实践。 有人可以告诉我如何使用我的例子做到这一点? 我删除了线程的代码行。 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 […]

如何在kotlin中实现finalize()?

今天,我在Closeable中实现了一个Closeable ,就像过去我在java中所做的一样,我想实现一个finalize()作为最后的手段,以防客户端代码忘记关闭它,渲染关键资源未被回收。 尽管这种后备不可靠,我认为这个资源足够重要,可以增加这个后备。 但是, kotlin.Any没有声明一个finalize方法,这意味着我不能简单地这样做: class Resource: Closeable { fun close() {} override fun finalize() { close()} } 这不好,至少不是应该的。 现在我回到普通的Java作为一种解决方法。 有谁知道如何在纯Kotlin中做到这一点? PS:我目前的解决方法: FinalizedCloseable.java: public abstract class FinalizedCloseable implement Closeable { @Override protected void finalize() { close(); } } 科特林: class Resource: FinalizedCloseable(), Closeable { fun close() {} override fun finalize() { close()} } 但是这个解决方法需要一个超类。 如果下一次我的其他Resource已经有一个超类,这个解决方法不会没有很多样板。 […]

Dagger2错误:Kotlin:未解决的参考:DaggerSOMETHINGComponent

源代码 我正在构建一个半年前在macOS上运行良好的Kotlin和Dagger2的gradle项目: GitHub的:科特林-Tutorials13 你可以得到它 git clone https://github.com/enbandari/Kotlin-Tutorials.git cd Kotlin-Tutorials/code/Kt13 你可以在IntelliJ IDEA中打开它 建筑环境 我的建筑环境如下: IntelliJ IDEA 2017.1.3 JRE:1.8.0_112-release-736-b21 amd64 JVM:由JetBrains sro提供的OpenJDK 64位服务器虚拟机 Windows 10 10.0 建设成果 它调出一个错误: C:\Users\xiang\IdeaProjects\Kotlin-Tutorials-master\code\Kt13\src\main\kotlin\net\println\kt13\Service.kt Error:(3, 25) Kotlin: Unresolved reference: DaggerRESTFulComponent Error:(19, 9) Kotlin: Unresolved reference: DaggerRESTFulComponent 反编译 所以,我反编译RESTFulComponent.class 它的源文件是RESTFulComponent.kt package net.println.kt13 import dagger.Component import net.println.kt13.module.RetrofitModule import retrofit2.Retrofit import javax.inject.Singleton /** * Created […]

Java / Kotlin JSON解析改进

我使用了一个API,它给了我这种类型的JSON: { "data": { "name": "Start", "pid": "1", "position": { "data": { "x": "31", "y": "330" }, "metadata": "empty" } }, "metadata": "empty" } 我已经创建了与上面的JSON具有相同结构的对象的类。 我使用Android中的GSON库,里面使用GSON来解析JSON。 我的模型类将是这样的: MResponse.class public class MResponse { @SerializedName("data") public User user; String metadata; } User.class public class User { public String name; public String pid; @SerializedName("position") public PositionData positionData; } […]

Kotlin数据类实现Java接口

我正在尝试将Kotlin引入到我目前的项目中。 我决定从实体开始,这些实体似乎完美地映射到数据类。 比如我有一个数据类: data class Video(val id: Long, val ownerId: Long, val title: String, val description: String? = null, val imgLink: String? = null, val created: Date? = null, val accessKey: String? = null, val views: Long? = null, val comments: Long? = null, val videoLink: String? = null): Entity 其中实现了Java接口: public interface Entity { […]