new String[] { "foo", "bar" }.clone();
使用我最喜欢的IDE(即Eclipse),我希望通过按住Ctrl键并单击来查看上述clone()
方法的源代码(像往常一样),但它带给我的是到Object
的原生的,只提供签名而不是方法的主体。
自动完成功能告诉我,所述clone()
方法属于String
类(clone() : String[] - String
),但String
类的源代码不提供此类一个方法(因为我正在处理String[]
类......)。
那么,该实现隐藏在哪里?应该修复自动完成吗?
答案 0 :(得分:8)
克隆数组的代码在JVM中(它是一种本机方法)。对于热点,它位于jvm.cpp的550/560行附近。
答案 1 :(得分:0)
令人困惑的是,Eclipse表示clone
数组的String
方法位于String
类中。但是String数组的length
方法来自String[]
。