为了账号安全,请及时绑定邮箱和手机立即绑定

内部类中,该如何返回当前内部类的对象this?

内部类中,该如何返回当前内部类的对象this?

肆意先生 2016-08-07 18:19:49
public Node selectNode(String data){ if(this.getData().equals(data)){ System.out.println("该节点存在"); return this ; }else{ if(this.next == null){ System.out.println("该节点不存在"); }else{ this.next.selectNode(data) ; } } 此代码是Link类的内部类Node的一部分,该方法旨在获取满足Node.data等于给定data的节点。一下是全部代码:public class Links{ class Node{ //内部类来实现 private String data = null ; private Node next = null ; public Node(String data){ this.setData(data) ; } public void setData(String data){ this.data = data ; } public String getData(){ return this.data ; } public void linkNext(Node node){ if(this.next == null){ this.next = node ; }else{ this.next.linkNext(node) ; } } public Node selectNode(String data){ if(this.getData().equals(data)){ System.out.println("该节点存在"); return this ; }else{ if(this.next == null){ System.out.println("该节点不存在"); }else{ this.next.selectNode(data) ; } } } } private int length = 0 ; //记录链表长度 private Node headNode = null ; //头结点 private Node pointNode = null ; //备用指针 public void resetPointNode(){ //备用指针节点初始化 this.pointNode = null ; } public void addNodeToLink(String data){ Node node = new Node(data) ; if(this.headNode == null){ this.headNode = node ; }else{ this.headNode.linkNext(node) ; } this.length ++ ; } public void delNodeFromLink(String data){} public void sltNodeFromLink(String data){ this.pointNode = this.headNode.selectNode(data) ; this.resetPointNode() ; } public void fixNodeFromLink(String oldData,String newData){ this.pointNode = this.headNode.selectNode(oldData) ; this.pointNode.setData(newData) ; this.resetPointNode() ; } public int getLinkLength(){ //获取链表长度 return this.length ; } public void printLink(){ this.pointNode = this.headNode ; for(int i=0 ;i < this.length ;i ++){ if(this.pointNode.next == null){ System.out.println(this.pointNode.getData()); }else{ System.out.print(this.pointNode.getData() + "->"); } this.pointNode = this.pointNode.next ; } this.resetPointNode() ; } /* public void delNodeFromLink(int nodeNum){} public void sltNodeFromLink(int nodeNum){} public void fixNodeFromLink(int nodeNum){} //*/ }
查看完整描述

1 回答

?
ziom

TA贡献948条经验 获得超1109个赞

你写的没问题啊,直接return this; 就对了

查看完整回答
反对 回复 2016-08-08
  • 肆意先生
    肆意先生
    return this返回值是null,我debug发现在方法里this的值会在出方法后变成null
  • ziom
    ziom
    出方法变成null?是不是你调用的有问题
  • 1 回答
  • 0 关注
  • 1523 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信