Tag: Java

将无限期运行的Runnable从java转换为kotlin

我在java中有这样的代码来监视某个文件: private Handler mHandler = new Handler(); private final Runnable monitor = new Runnable() { public void run() { // Do my stuff mHandler.postDelayed(monitor, 1000); // 1 second } }; 这是我的kotlin代码: private val mHandler = Handler() val monitor: Runnable = Runnable { // do my stuff mHandler.postDelayed(whatToDoHere, 1000) // 1 second } 我不明白什么Runnable我应该进入mHandler.postDelayed 。 什么是正确的解决方案? […]

如何在Kotlin中创建一个没有访问器的属性?

我正在使用Java代码中的Kotlin类。 我的Kotlin类看起来像: class Something { var a = 0 } 我希望能够像Java一样访问Java代码 s = new Something(); sa = 5; 不过,我只有s.getA()和s.setA(5) 。 有什么办法让这个属性可以直接从Java设置和gettable? 在这种情况下显然我们不能有自定义的getter和setter。

ImageIO无法读取输入文件(Kotlin)

您好我使用kotlin作出不和谐的机器人,我有一个名为sam.png的PNG,但我尝试插入并得到这个错误: [23:18:38] [致命] [JDA]:javax.imageio.IIOException:无法读取输入文件! override fun run(ev: MessageReceivedEvent) { var selaSam: Image = ImageIO.read(File("/sam.png")) var image = LikeUtils.downloadImage(LikeUtils.getUserHandle(ev).getEffectiveAvatarUrl()) image.graphics.drawImage(selaSam, 200, 200, null) LikeUtils.sendFile(image, "/resources/sam.png", null) }

json的kotlin klaxon库

我是新来的kotlin,并决定最好的方式来学习的东西是开始使用它(所以问题更多的语言,而不是对克拉松库)。 我试图理解从glax页面( https://github.com/cbeust/klaxon )的第一个片段。 这里是: fun parse(name: String) : Any? { val cls = Parser::class.java return cls.getResourceAsStream(name)?.let { inputStream -> return Parser().parse(inputStream) } } 我不明白为什么在第一种情况下,我们做 分析器:: class.java 然后调用getResource …但是然后调用 分析器()。解析 在第二种情况下。 有什么区别,为什么这样 PS对不起,英文=)

使用kotlin-maven-plugin进行注释处理

所以我有2个模块的maven项目。 root pom.xml看起来像这样: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>kashier</groupId> <artifactId>Kashier</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <modules> <module>AnnotationProcessing</module> <module>TestProject</module> </modules> AnnotationProcessing模块的pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>kashier</groupId> <artifactId>Kashier</artifactId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>AnnotationProcessing</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> <kotlin.version>1.0.3</kotlin.version> </properties> <dependencies> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib</artifactId> <version>${kotlin.version}</version> </dependency> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-test</artifactId> <version>${kotlin.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.google.auto.service</groupId> <artifactId>auto-service</artifactId> <version>1.0-rc2</version> <optional>true</optional> </dependency> </dependencies> <build> […]

JUnit,@ControllerAdvice和缺少Kotlin中检查的异常

我在Kotlin中写了一个验证顾问 ,当验证失败时抛出EntityValidationException : @Aspect @Named class ValidationAdvisor @Inject constructor(val validator: EntityValidator) { @Around(EVERY_SAVE_AND_UPDATE_TO_DATABASE) fun validate(point: ProceedingJoinPoint): Any { val result: List<ConstraintViolation<Any>> = validator.validate(getEntity(point)) if (isEntityValid(result)) return point.proceed() throw EntityValidationException( violationInfos = result as List<ConstraintViolationInfo> ) } private fun getEntity(point: ProceedingJoinPoint): Any { return point.args[0] } private fun isEntityValid(result: List<ConstraintViolation<Any>>): Boolean { return result.isEmpty() } companion […]

接口与函数调用的Kotlin性能

在Kotlin中,因为我们可以使用函数作为变量,所以我倾向于用这样的函数调用替换接口: class A { private var listener: AA? = null var callThis: (() -> Unit) ? = null) fun somethingHere() { callThis?.invoke() listener?.callThis2() } fun attachListener(listener: AA) { this.listener = listener } interface AA { fun callThis2() } } class B { init { val objectA = A() objectA.callThis = {} objectA.attachListener(object : A.AA { […]

Kotlin:将列表转换为Java可变参数

我怎样才能将我的Kotlin列表转换为Java字符串数组? (称为函数是在Java中,并期望可变参数)。 val angularRoutings = arrayOf<String>( "/language", "/home", "/registration", "/registration-summary", "/admin/registration", "/init") // this doesn't work web!!.ignoring().antMatchers(angularRoutings) 如何将ArrayList传递给可变参数方法参数?

省略号运算符在Kotlin中的Java等价性

在Java中,可以这样做: void function(Url… urls) 。 这使得使用1..n网址成为可能。 问题是Kotlin能否做同样的事情。

Kotlin android数据库:不能将java.lang.String强制转换为android.database.Cursor

我正在开发一个简单的笔记应用程序在Android的Kotlin使用一个简单的SQLite数据库。 我已经用java编写了它,但是现在我在Kotlin中遇到了一些问题,特别是在一行代码中。 这是工作的 java代码,当我在列表视图上点击它时,我会记下这个ID。 itemCursor = (Cursor) activity.listView.getItemAtPosition(position); noteID = itemCursor.getInt(itemCursor.getColumnIndex(DBHelper.NOTES_COLUMN_ID)); itemCursor = helper.getNote(noteID); 那么这应该是Kotlin代码: var itemCursor: Cursor = activity.listView.getItemAtPosition(position) as Cursor **(error here on this line, look below for it)** var noteID: Int = itemCursor.getInt(itemCursor.getColumnIndex(COLUMN_ID)) itemCursor = helper.getNote(noteID) java.lang.ClassCastException:java.lang.String不能转换为android.database.Cursor ListView适配器: list_titles = helper.getAllTitles() lv_adapter = ArrayAdapter(activity, android.R.layout.simple_list_item_1, list_titles) v.listview.adapter = lv_adapter getAllTitles好玩: fun getAllTitles(): […]