Java 是否可以检测是否第一次调用了fluent接口?

Java 是否可以检测是否第一次调用了fluent接口?,java,fluent-interface,Java,Fluent Interface,假设我有一门课: class A { public A fun() { System.out.println("a"); return this; } } 还有一个场景: A a = new A(); a.fun().fun().fun().fun(); a.fun().fun(); 是否可以在每个顺序调用的第一次调用中打印附加消息,而不添加类似于.start()/.finalize()?的内容?您可以执行以下操作: public cla

假设我有一门课:

class A {
    public A fun() {
        System.out.println("a");
        return this;
    }   
}
还有一个场景:

A a = new A();
a.fun().fun().fun().fun();
a.fun().fun();

是否可以在每个顺序调用的第一次调用中打印附加消息,而不添加类似于
.start()
/
.finalize()

的内容?您可以执行以下操作:

public class A {

    public A fun() {
        System.out.println("A");
        return new AA();
    }

    private class AA extends A {
        @Override
        public A fun() {
            System.out.println("AA");
            return this;
        }
    }

    public static void main(String[] args) {
        A a = new A();
        a.fun();
        a.fun().fun();
        a.fun().fun().fun();
    }
}
产出:

A
A
AA
A
AA
AA

你可以这样做:

public class A {

    public A fun() {
        System.out.println("A");
        return new AA();
    }

    private class AA extends A {
        @Override
        public A fun() {
            System.out.println("AA");
            return this;
        }
    }

    public static void main(String[] args) {
        A a = new A();
        a.fun();
        a.fun().fun();
        a.fun().fun().fun();
    }
}
产出:

A
A
AA
A
AA
AA

哇:我觉得我的梦太深了。不错。哇:我觉得我的梦太深了。不错。