匿名 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()
里面还是外面很重要,但只有你自己才能决定哪个更好。如果你想在外面,在外面哪里都没有关系,而且只有你能决定哪个更好。
你在哪里放置匿名实例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()
里面还是外面很重要,但只有你自己才能决定哪个更好。如果你想在外面,在外面哪里都没有关系,而且只有你能决定哪个更好。