匿名 class 实例放置

Anonymous class instance placement

你在哪里放置匿名实例class?

public class MyClass {
    // Variables
    private Api api;

    // Functions
    public void callApi() {
        api.get(<...>, responseListener)
    }

    // Where to put that? Top of the file, bottom, next to function?
    private ResponseListener responseListener = new ResponseListener() {
        @Override
        public void onSuccess(Object response) {
        }
    };
}

而且,在那种情况下,直接在 api 调用中实例化会更好吗?

    public void callApi() {
        api.get(<...>, new ResponseListener() {
            @Override
            public void onSuccess(Object response) {
            }
        });
    }

这是您必须做出的决定。按照您最初编写它的方式,您有一个名为 responseListener 的字段,它被初始化一次并在每次 callApi() 调用时重复使用。如果那是您想要的行为,您可以将其放在 callApi() 方法之上(与另一个字段 api)。或者把它留在原处。都还行,就看你喜欢哪个了。

但是,如果每次调用 callApi() 时都需要一个新实例,那么将它放在 callApi().

中是有意义的

所以放在callApi()里面还是外面很重要,但只有你自己才能决定哪个更好。如果你想在外面,在外面哪里都没有关系,而且只有你能决定哪个更好。