首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java Android简单重构

Java Android简单重构
EN

Stack Overflow用户
提问于 2018-08-30 04:23:48
回答 2查看 46关注 0票数 -2

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

代码语言:javascript
复制
    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);
    }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-30 04:29:20

我会像这样重构它:

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

变化不大,但它清楚地表明,只有新的activity类依赖于a

如果你的风格是追求简洁,整个事情可以简化为一行(如果你想在将来扩展逻辑,代价是灵活性):

代码语言:javascript
复制
public void activityOpener(int a) {
    startActivity(new Intent(this, a == 1 ? proj1new.class : BasicNumbers.class));
}
票数 -2
EN

Stack Overflow用户

发布于 2018-08-30 04:28:55

代码语言:javascript
复制
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);

你是这个意思吗?代码现在更整洁了

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52085545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档