相关疑难解决方法(0)

从Java访问Kotlin扩展函数

是否可以从Java代码访问扩展函数?

我在Kotlin文件中定义了扩展函数.

package com.test.extensions

import com.test.model.MyModel

/**
 *
 */
public fun MyModel.bar(): Int {
    return this.name.length()
}
Run Code Online (Sandbox Code Playgroud)

哪个MyModel是(生成的)java类.现在,我想用我的普通java代码访问它:

MyModel model = new MyModel();
model.bar();
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.IDE将无法识别该bar()方法,并且编译失败.

使用kotlin的静态函数可以使用什么:

public fun bar(): Int {
   return 2*2
}
Run Code Online (Sandbox Code Playgroud)

通过使用import com.test.extensions.ExtensionsPackage所以我的IDE似乎正确配置.

我搜索了kotlin文档中的整个Java-interop文件,并搜索了很多内容,但我找不到它.

我究竟做错了什么?这甚至可能吗?

java kotlin extension-function

123
推荐指数
5
解决办法
3万
查看次数

返回默认值而不是null的Java Map实现

Map<String, List<String>>我的代码中有一个,如果map的#get()方法返回一个空列表而不是null ,我会避免使用潜在的空指针.java API中有这样的东西吗?我应该延长HashMap吗?

java default

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

是否可以创建一个每个键都指向相同值的映射?

是否有可能(在Java中)创建一个Map,无论我要搜索什么键,我都会检索到相同的值?我们可以假设有限或无限数量的密钥。

我考虑了大小为 1 且负载因子为 1.0 的映射,并将该值存储在其中,但我几乎肯定 hashmap 实现会识别冲突,并无论如何返回 null。

我还考虑了这样一种可能性:如果我为变量创建自己的哈希函数,甚至是实现 Map 的新数据类型,我应该能够做到这一点,但可能有点混乱。也许不是?

当然,简单地将值映射到每个键将是非常低效的(除非有一个内置的方法,我忽略了),而且远没有听到 SO 的答案那么有趣。

java hashtable

7
推荐指数
1
解决办法
2080
查看次数

在HashMap中设置默认值

我试图找到一种方法使HashMap返回默认值.例如,如果你看下面这将打印输出" Test:= null "如果我想请求一个默认值,所以当我试图得到一些未在hashMap中设置的东西时,我会得到这个值?

Map<String, String> test = new HashMap<String, String>();
test.put("today","monday");
System.out.println("Test =:" + test.get("hello") + "");
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

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