我在将应用程序从Java镜像到Kotlin时遇到了一些问题。我用java编写了这个类,效果很好:
public final class BooleanUtils extends org.apache.commons.lang3.BooleanUtils {
private BooleanUtils() {
}
/**
* Converts a String to Boolean.
* @param str the String to check
* @return true/false
*/
public static boolean toBoolean(final String str) {
return org.apache.commons.lang3.BooleanUtils.toBoolean(str) || "1".equals(str);
}
}
在IntelijiIdea中自动转换后,它开始变成这样
import org.apache.commons.lang3.BooleanUtils
object BooleanUtils : BooleanUtils() {
/**
* Converts a String to Boolean.
* @param str the String to check
* @return true/false
*/
fun toBoolean(str: String): Boolean {
return BooleanUtils.toBoolean(str) || "1" == str
}
}
但编译器告诉我
意外重写:以下声明具有相同的JVM签名(to boolean(Ljava/lang/String;)Z): fun toBoolean(p0: String?):在my . util . booleanutils fun to Boolean中定义的Boolean(str: String?):在my.util.BooleanUtils中定义的布尔值
我怎么能覆盖乐趣到布尔(str: String),使它像Java一样工作?
我更喜欢String类的扩展:
fun String.boolean(): Boolean =
return when(this.toLowerCase()) {
"y", "yes", "t", "true", "1" -> true
else -> false
}
问题内容: 场景: 该代码不起作用,而且我找不到像继承那样来调用trait函数的方法。我打过电话,,,和以下内容: 没用。 有没有办法使它起作用,或者我必须完全重写特质函数,它比这要复杂得多:) 问题答案: 您的最后一个快到了: 特质不是阶级。您不能直接访问其成员。基本上只是自动复制和粘贴…
在Groovy中,我重写了这样一个任务: 如何使用Kotlin dsl?我知道我可以创建这样的任务: 但是我找不到等价的方法来声明它为overwrite,这导致了一个错误
问题内容: 堆垛机。我一直在网站上搜索我的问题,但没有找到我想要的东西。我坚持下面的代码: 得到了一个不错的数组列表,但是如果我在ArrayList中添加更多“ newUsers”,它们似乎会相互覆盖。我不想创建一个newUser1,newUser2对象,因为稍后在我的程序中,我必须能够直接从该程序添加新用户。 如何实现呢? ValidateUser: } 问题答案: 如果我理解正确,那么您是以这
我试图通过遵循这个问题中的建议来覆盖Laravel 5中的注册函数。然而,在我的例子中,我并没有试图从注册页面重定向用户。相反,我只想注册新用户,但保持当前(管理员)用户登录。默认函数验证并登录新用户,然后重定向到“主页”。下面是我尝试添加到AuthController的内容。php: 我认为我很聪明,只是创建了新帐户,然后将当前用户重定向到管理页面。但是,没有创建任何用户,也没有发生重定向。任何
问题内容: 当Java中的类未覆盖 hashCode()时 ,打印此类的实例将提供一个不错的唯一数字。 Object的Javadoc谈到了 hashCode() : 在合理可行的范围内,由Object类定义的hashCode方法确实为不同的对象返回不同的整数。 但是,当类重写 hashCode()时 ,如何获得其唯一编号? 问题答案: System.identityHashCode(yourObj
在swagger ui中,这样的例子是 对于嵌套对象,它工作正常(使用XML对象的标记名,而不是该对象的标题)。对于结果模式根对象,也可以。 根对象仅在body参数中存在问题。