请教个问题:构造函数里调用自身?

codestinity 2011-10-23 04:12:40
class FSDir {
...........
public FSDir(File dir) // 这里
throws IOException {
this.dir = dir;
this.children = null;
if (! dir.exists()) {
if (! dir.mkdirs()) {
throw new IOException("Mkdirs failed to create " +
dir.toString());
}
} else {
File[] files = dir.listFiles();
int numChildren = 0;
for (int idx = 0; idx < files.length; idx++) {
if (files[idx].isDirectory()) {
numChildren++;
} else if (Block.isBlockFilename(files[idx])) {
numBlocks++;
}
}
if (numChildren > 0) {
children = new FSDir[numChildren];
int curdir = 0;
for (int idx = 0; idx < files.length; idx++) {
if (files[idx].isDirectory()) {
children[curdir] = new FSDir(files[idx]); //这里 curdir++;
}
}
}
}
}


红色的部分,这个难道不是在构造函数里调用自身么?
为什么可以这样?
...全文
104 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
huntor 2011-10-23
  • 打赏
  • 举报
回复
你没有看过数据结构的 树 吗?
codestinity 2011-10-23
  • 打赏
  • 举报
回复
那不就成了无限递归了吗,求教啊
wantdraw 2011-10-23
  • 打赏
  • 举报
回复
递归吧?!

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧