如果在另一个类中使用它,那么android中的getter和setter是否正常?

时间:2015-02-28 20:49:41

标签: java android android-intent setter getter

我读到,当在创建它的同一个类中使用该方法时,getter和setter对于android编程并不好。但是如果在另一个类中使用它会有任何负面影响吗?我被告知不要使用很多静态变量,所以我正在寻找替代方案。使用getter / setter似乎比通过intent传递值更容易混淆。这样做的编码是否良好?

2 个答案:

答案 0 :(得分:2)

只是为了获得最重要的部分:你应该从不在Android中使用静态变量,除非你确切知道你在做什么。否则你将会造成内存泄漏和其他一系列问题。

如果您想将数据传递给其他Activity,则应使用Intents


方法调用总是会产生额外的开销。直接访问字段总是更快。但这并不意味着你应该放弃吸气剂和制定者。

例如,请查看此课程Example

public class Example {

    private String text;

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    public void doSomething() {
        ...
    }
}

doSomething()内,您应该直接使用该字段。在那里调用getter和setter是不可能的,因为每次调用它都需要额外的开销。

如果你在下面的另一个类中使用Example类,你应该使用getter和setter方法:

Example instance = new Example();
instance.setText("some text");
...
String text = instance.getText();

将该字段公开并直接访问它instance.text会很糟糕。


但是任何现代设备都有如此多的计算能力,方法调用产生的开销完全可以忽略不计。 The docs请说明您应该避免在性能关键位置使用getter和setter,但该规则是从大多数Android手机拥有128 MB RAM的时候开始的。你应该遵守我上面解释的规则的主要原因只有一点:编码风格

您首先要关注的是编写干净,可读和可维护的代码。

答案 1 :(得分:0)

简而言之:

这是最糟糕的事情,如果你想在活动之间使用传递数据。活动应该只保存/使用相关的数据,一旦活动完成,数据就会丢失..对于你要通过的案例从一项活动到另一项活动的数据,您必须使用本项。

如果您正在谈论应该为少数活动服务的数据,而且它们来自DB / Another数据源。在这种情况下,这与android无关,数据应作为java中的标准体系结构处理

希望有意义