小编And*_*mer的帖子

为什么IntelliJ建议将调用链转换为序列?

假设将源集映射src到目标集的以下Kotlin示例dst:

private val src: Set<String> = setOf("hello", "world")
private val dst: Set<Int> = src.map { it.length }.toSet()
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,IntelliJ的代码检查表明:集合上的调用链应该转换为'Sequence':

集合上的调用链应转换为'序列'

应用此建议会导致

private val dst: Set<Int> = src.asSequence().map { it.length }.toSet()
Run Code Online (Sandbox Code Playgroud)

这有什么好处?

set intellij-idea code-inspection kotlin intellij-inspections

26
推荐指数
2
解决办法
2795
查看次数

为什么 java.util.ArrayList 包中的数据数组是私有的?

java.util.ArrayList类中,列表元素的对象数组被定义为包私有:

transient Object[] elementData; // non-private to simplify nested class access
Run Code Online (Sandbox Code Playgroud)

评论指出,这个字段不是私有的原因是在嵌套类中更容易访问。但是,嵌套类可以很好地访问封闭类的私有数据。那么为什么elementData不是私有的呢?后台是否发生了某些事情(例如,在编译时)?

java visibility arraylist inner-classes

25
推荐指数
2
解决办法
608
查看次数

获取子类的重写函数

有没有办法在Python中获取子类的所有替代函数?

例:

class A:
    def a1(self):
        pass

    def a2(self):
        pass


class B(A):
    def a2(self):
        pass

    def b1(self):
        pass
Run Code Online (Sandbox Code Playgroud)

在这里,我想获得一个列表["a2"]的类的对象B(或类对象本身),因为类B重写只有一个方法,即a2

python reflection overriding subclass

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