小编Jir*_*ire的帖子

Kotlin:KClass的getClass()等价物

在Java中,我们可以通过getClass()like 来解析变量的类something.getClass().在Kotlin,我知道something.javaClass哪个很好,但我希望能够以KClass类似的方式获得.我已经看过Something::class语法,但这不是我需要的.我需要得到一个变量的KClass.这样的功能是否存在?

java class kotlin

74
推荐指数
3
解决办法
4万
查看次数

Kotlin:使用lambda代替功能界面?

在Java中我们可以做到这一点 Events.handler(Handshake.class, hs -> out.println(hs));

但是在Kotlin中,我试图复制行为来替换它:

Events.handler(Handshake::class, object : EventHandler<Handshake> {
    override fun handle(event: Handshake) {
        println(event.sent)
    }
})
Run Code Online (Sandbox Code Playgroud)

更方便:

Events.handler(Handshake::class, EventHandler<Handshake> { println(it.sent) })

出于某种原因参考EventHandler:

在此输入图像描述

更优选的是,我想使用更短的东西: Events.handler(Handshake::class, { println(it.sent) })

或者使用广告功能使用如下方法: Events.handler(Handshake::class) { println(it.sent) }

这是我的Events目标:

import java.util.*
import kotlin.reflect.KClass

object Events {

    private val map = HashMap<Class<*>, Set<EventHandler<*>>>()

    fun <T : Any> handler(eventType: KClass<T>, handler: EventHandler<T>) {
        handler(eventType.java, handler)
    }

    fun <T> handler(eventType: Class<T>, handler: EventHandler<T>) = handlers(eventType).add(handler)

    fun post(event: Any) = handlers(event.javaClass).forEach { …
Run Code Online (Sandbox Code Playgroud)

java lambda intellij-idea kotlin

47
推荐指数
2
解决办法
3万
查看次数

如何从IntelliJ VCS中的Git中删除文件?

VCS有一个Add选项(Git Add),但似乎缺少Git Remove.

用VCS删除Git的惯用方法是什么?

git version-control intellij-idea

37
推荐指数
5
解决办法
2万
查看次数

Chrome不抗锯齿文字

即使我添加了专门针对Google Chrome的代码,Google Chrome也不会对我的文字进行抗锯齿处理.

奇怪的是,据说与我添加的代码不兼容的Firefox 确实适当地对文本进行了反讽.

这是特定的CSS样式:

.jumbotron h1 {
    color: white;
    font-size: 100px;
    text-align: center;
    line-height: 1;
    /*
     * Webkit only supported by Chrome and Safari.
     */
    -webkit-font-smoothing: antialiased;
}
Run Code Online (Sandbox Code Playgroud)

铬:

https://dl.dropboxusercontent.com/u/26438996/guru/guru-chrome.png

火狐:

https://dl.dropboxusercontent.com/u/26438996/guru/guru-firefox.png

正如您在上面看到的那样(可能在网站上),在Firefox上看起来更好看.

html css firefox google-chrome

34
推荐指数
3
解决办法
9万
查看次数

VisualVM:CPU /内存分析器停留在"连接到目标JVM ......"

我最近重新安装了Windows,我使用的是内置VisualVM的JDK 1.8 u91.我已经检查了我的代理设置,以确保它们都在Windows代理设置和VisualVM的代理设置中全部关闭.

我也尝试重新安装JDK,重新启动计算机,重新安装Windows.我只安装了一个JDK,并且类路径设置为Windows中的JDK bin文件夹.

除了CPU和内存分析之外的所有功能都在VisualVM中工作.我的应用程序是从IntelliJ运行的,但我也尝试从命令行定期运行应用程序,VisualVM也无法连接到那些应用程序.

我也试过从http://visualvm.java.net下载VisualVM,这也不起作用.

我没有安装插件.

它为什么挂?这是新JDK引入的错误吗?

java profiler profiling visualvm jvisualvm

34
推荐指数
1
解决办法
7872
查看次数

Kotlin:你能为varargs使用命名参数吗?

例如,您可能具有复杂签名和varargs的功能:

fun complicated(easy: Boolean = false, hard: Boolean = true, vararg numbers: Int)
Run Code Online (Sandbox Code Playgroud)

你应该能够像这样调用这个函数是有道理的:

complicated(numbers = 1, 2, 3, 4, 5)
Run Code Online (Sandbox Code Playgroud)

不幸的是,编译器不允许这样做.

是否可以为varargs使用命名参数?有没有聪明的解决方法?

function default-value variadic-functions named-parameters kotlin

28
推荐指数
3
解决办法
8406
查看次数

如何在Kotlin/Java中运行Kotlin-Script(.kts)文件?

我注意到IntelliJ可以将.kts文件解析为Kotlin,代码编辑器将它们作为自由浮动的Kotlin文件进行解析.您也可以像使用main方法的Kotlin文件一样在IntelliJ中运行脚本.该脚本从上到下执行.

这个表单对于我正在处理的项目来说是完美的,只要我知道在Java或Kotlin中使用它们的简单方法.

从Java或Kotlin"运行"这些脚本的惯用方法是什么?

java kotlin

26
推荐指数
4
解决办法
1万
查看次数

Kotlin:我如何创建"静态"可继承功能?

例如,我想example()在一个Child扩展的类型上有一个函数,Parent以便我可以在两者上使用该函数.

Child.example()
Parent.example()
Run Code Online (Sandbox Code Playgroud)

第一个"显而易见"的方法是通过同伴对象Parent,但这是不允许example()Child.

我尝试的第二种方法是定义一个扩展函数Parent.Companion,这是不方便的,因为你被迫定义一个伴随对象.它也不允许example()Child.

有人知道我怎么做吗?

function kotlin

24
推荐指数
2
解决办法
8906
查看次数

Kotlin:无法从对象导入按需

我正在尝试创建一个库,您可以object通过"静态导入" 调用函数(在Kotlin中按需导入).不幸的是,Kotlin似乎有一个限制,如下所示.

在此输入图像描述

为什么这是一个限制?我能做些什么来解决它吗?(我尝试使用带有伴随对象的类,在这种情况下,函数甚至无法解析.)

java kotlin

18
推荐指数
2
解决办法
2439
查看次数

LightTable:如何格式化代码?

如何在LightTable IDE中格式化代码?我在谈论Eclipse中的Ctrl + Shift + F等价物.

lighttable

15
推荐指数
1
解决办法
5299
查看次数