6

哪种方法更好,直接LocationListener像这样实现

public class BackgroundService extends Service implements LocationListener {}

还是通常LocationListener在班级内部声明?

LocationListener locationListener = new LocationListener() {};
4

1 回答 1

9

在第二段代码中,您必须在调用locationListener接口的方法之前调用属性。

在第一段代码中,您可以直接访问接口方法。

因此,如果您知道每个方法调用都会花费 cpu 时间,那么直接在类中实现它而不是将其作为属性将是有益的。

在这种情况下,您有 1 个引用BackgroundService,您可以使用它访问 LocationListener 的方法

public class BackgroundService extends Service implements LocationListener {}

在这种情况下,您有 2 个引用,一个指向BackgroundService,另一个指向locationListener

public class BackgroundService extends Service {
    private LocationListener locationListener = new LocationListener() {};
}

但是话又说回来,如果您的程序没有关键的时间限制,那并不重要。最重要的是你的代码是可读的。

我希望这能回答你的问题。

于 2012-09-01T12:25:54.093 回答