一个方法可以 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();
            }

希望对您有所帮助