Java Android简单的重构?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (66)

如何改进下面的代码?我是Java新手,来自iOS背景。我认为意图需要转向一个单独的变量。

    public void activityOpener(int a) {

    if (a == 1) {
        Intent intent = new Intent (this, proj1new.class);
        startActivity(intent);

    }else {
        Intent intent = new Intent (this, BasicNumbers.class);
        startActivity(intent);
    }

}
提问于
用户回答回答于

我会像这样重构它:

public void activityOpener(int a) {
    Class<?> cls = a == 1
        ? proj1new.class
        : BasicNumbers.class;
    Intent intent = new Intent(this, cls);
    startActivity(intent);
}

没有太大的改变,但它清楚地表明只有新的活动类依赖于a

如果你的风格是为了简洁,整个事情可以简化为单行(如果你想在未来扩展逻辑,则以牺牲灵活性为代价):

public void activityOpener(int a) {
    startActivity(new Intent(this, a == 1 ? proj1new.class : BasicNumbers.class));
}
用户回答回答于
public void activityOpener(int a) {

    Intent intent;
    if (a == 1) {
        intent = new Intent (this, proj1new.class);
    }else {
        intent = new Intent (this, BasicNumbers.class);
    }
    startActivity(intent);

你是这个意思吗?代码现在有点清洁了

扫码关注云+社区

领取腾讯云代金券