小编Voj*_*ěch的帖子

具有不可为空的getter的可为空字段

我正在尝试使用nullable setter和nullable field实现非nullable getter。

  1. 字段parent可以为null,表示父级为this。如果parent不为null,则parent为parent值。
  2. Getter不可为空,因为它会返回thisparent
  3. 设置器可以设置可为空的值,因为它可以删除当前父级。

我尝试了这个:

@ManyToOne(fetch = FetchType.EAGER)

@JoinColumn(name = "parent_id")
var _parent: T? = null
var parent: T
    get() = if (isParent) this as T else _parent!!
    set(value) {
        _parent = if (value == null) null else value.parent
    }
Run Code Online (Sandbox Code Playgroud)

我不喜欢该_parent变量,但是它对设置方法没有帮助,因为它仍然不能作为null parent: T,因此解决方案不起作用。

kotlin

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

Android SQLite:快速插入/更新

在我的Android应用程序中,我使用编译语句来快速插入行:

insert = db.compileStatement(
                    "INSERT INTO foo (id, aaa, bbb, ccc) " +
                    "VALUES (?,?,?,?)");
Run Code Online (Sandbox Code Playgroud)

这工作正常且非常快.但是当已经foo有了id,我收到以下异常:

column id is not unique (code 19)
Run Code Online (Sandbox Code Playgroud)

覆盖现有行的正确方法是什么?

java sqlite android

0
推荐指数
1
解决办法
184
查看次数

比较Kotlin中的两个选项

考虑一个id字段的类,该字段在存储在数据库中之前可能为null:

class IdableK<T : IdableK<T>> : Comparable<T> {    
    private var id : Long? = null
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试实现compareTo如下方法:

    override fun compareTo(other: T): Int {
        if (id == null) {
            return -1;
        }

        if (other.id == null) {
            return 1;
        }

        return id!!.compareTo(other.id!!)
    }
Run Code Online (Sandbox Code Playgroud)

这是一种正确的做法吗?有没有一种简单的方法呢?

kotlin

0
推荐指数
1
解决办法
301
查看次数

Java RegExp:替换引号""为英语""(思维环境)

是否有任何简单的方法可以通过正则表达式将键盘上的引号转换为英语引号,但请确保保留HTML实体?例如,我们想翻译some "text",但我们不想要<span id="blah">.

谢谢!

编辑:

有些人建议,我没有尝试过自己.我曾经尝试过 - 我不想表现出不影响你.但没有成功:

string.replace(
     "(?<!\"|\\w|=)\"(?!\\ |\")((?:[^\"]++|\")+?)(?<!\\ |\")\"(?![\"A-Za-z\u00C0-\u02FF\u0370-\u1EFF])()", 
     "“$1”");
Run Code Online (Sandbox Code Playgroud)

但我无法管理不在HTML标签中翻译这些引号.

java regex typography

-1
推荐指数
1
解决办法
151
查看次数

标签 统计

java ×2

kotlin ×2

android ×1

regex ×1

sqlite ×1

typography ×1