您将匿名类的实例放在哪里?

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()还是外部都很重要,但是只有您可以决定哪个更好。而且,如果您希望在外面使用它,那么在外面的位置也无所谓,只有您可以决定哪个更好。

10-06 16:12