一个方法可以 return 另一个具有相同 return 类型的方法吗?
Can a method return another method with same return type?
这是我的双向链表(循环)实现中的代码块。
它可以 return 一个方法,例如 addBefore 方法的 return 语句吗?
public boolean addAfter(int value, int target) {
Node targetNode = findExact(target);
Node temp = new Node(value);
if(targetNode == null) {
return false;
} else if((targetNode.next == null)) { //prevNode is head, when list.size = 1
temp.next = head;
temp.prev = targetNode;
targetNode.next = temp;
head.prev = temp;
size++;
return true;
} else if(targetNode.next == head) { //prevNode is tail,
temp.next = targetNode.next;
temp.prev = targetNode;
targetNode.next = temp;
head.prev = temp;
size++;
return true;
} else { //prevNode is a node inbetween two nodes
temp.next = targetNode.next;
temp.prev = targetNode;
targetNode.next = temp;
temp.next.prev = temp;
size++;
}
return true;
}
public boolean addBefore(int value, int target) {
Node targetNode = findPrev(target);
return addAfter(value, targetNode.data);
}
我认为您想在 addBefore 方法的情况下声明 returning 方法的值,您希望利用 addAfter。那位是有效的,你应该看看你的基础方法 addAfter 的语义,可能还有 findExact 是什么 returning 导致 NPE。
也可以 return 一个方法,虽然这里不需要它,但这假设有一个名为 myMethod 的方法,它接受一个整数数组,语法如下所示:
Method myMethod;
try {
myMethod = TestApp.class.getDeclaredMethod("myMethod", int[].class);
myMethod.invoke(null, ar);
} catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
希望对您有所帮助
这是我的双向链表(循环)实现中的代码块。
它可以 return 一个方法,例如 addBefore 方法的 return 语句吗?
public boolean addAfter(int value, int target) {
Node targetNode = findExact(target);
Node temp = new Node(value);
if(targetNode == null) {
return false;
} else if((targetNode.next == null)) { //prevNode is head, when list.size = 1
temp.next = head;
temp.prev = targetNode;
targetNode.next = temp;
head.prev = temp;
size++;
return true;
} else if(targetNode.next == head) { //prevNode is tail,
temp.next = targetNode.next;
temp.prev = targetNode;
targetNode.next = temp;
head.prev = temp;
size++;
return true;
} else { //prevNode is a node inbetween two nodes
temp.next = targetNode.next;
temp.prev = targetNode;
targetNode.next = temp;
temp.next.prev = temp;
size++;
}
return true;
}
public boolean addBefore(int value, int target) {
Node targetNode = findPrev(target);
return addAfter(value, targetNode.data);
}
我认为您想在 addBefore 方法的情况下声明 returning 方法的值,您希望利用 addAfter。那位是有效的,你应该看看你的基础方法 addAfter 的语义,可能还有 findExact 是什么 returning 导致 NPE。
也可以 return 一个方法,虽然这里不需要它,但这假设有一个名为 myMethod 的方法,它接受一个整数数组,语法如下所示:
Method myMethod;
try {
myMethod = TestApp.class.getDeclaredMethod("myMethod", int[].class);
myMethod.invoke(null, ar);
} catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
希望对您有所帮助