首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态更改要调用的变量

动态更改要调用的变量
EN

Stack Overflow用户
提问于 2014-01-24 08:58:38
回答 1查看 54关注 0票数 0

好的,我有一个有很多列和行的表,我需要从SQLite数据库中填充其中的每个SQLite。我现在就是这样做的(在你看它之前先深呼吸一下,这是你见过的最糟糕的代码之一):

代码语言:javascript
运行
复制
populateUrnik("Ponedeljek", 1, razred, pon1, pon1u);
    populateUrnik("Torek", 1, razred, tor1, tor1u);
    populateUrnik("Sreda", 1, razred, sre1, sre1u);
    populateUrnik("Četrtek", 1, razred, cet1, cet1u);
    populateUrnik("Petek", 1, razred, pet1, pet1u);

    populateUrnik("Ponedeljek", 2, razred, pon2, pon2u);
    populateUrnik("Torek", 2, razred, tor2, tor2u);
    populateUrnik("Sreda", 2, razred, sre2, sre2u);
    populateUrnik("Četrtek", 2, razred, cet2, cet2u);
    populateUrnik("Petek", 2, razred, pet2, pet2u);

    populateUrnik("Ponedeljek", 3, razred, pon3, pon3u);
    populateUrnik("Torek", 3, razred, tor3, tor3u);
    populateUrnik("Sreda", 3, razred, sre3, sre3u);
    populateUrnik("Četrtek", 3, razred, cet3, cet3u);
    populateUrnik("Petek", 3, razred, pet3, pet3u);

    populateUrnik("Ponedeljek", 4, razred, pon4, pon4u);
    populateUrnik("Torek", 4, razred, tor4, tor4u);
    populateUrnik("Sreda", 4, razred, sre4, sre4u);
    populateUrnik("Četrtek", 4, razred, cet4, cet4u);
    populateUrnik("Petek", 4, razred, pet4, pet4u);

    populateUrnik("Ponedeljek", 5, razred, pon5, pon5u);
    populateUrnik("Torek", 5, razred, tor5, tor5u);
    populateUrnik("Sreda", 5, razred, sre5, sre5u);
    populateUrnik("Četrtek", 5, razred, cet5, cet5u);
    populateUrnik("Petek", 5, razred, pet5, pet5u);

    populateUrnik("Ponedeljek", 6, razred, pon6, pon6u);
    populateUrnik("Torek", 6, razred, tor6, tor6u);
    populateUrnik("Sreda", 6, razred, sre6, sre6u);
    populateUrnik("Četrtek", 6, razred, cet6, cet6u);
    populateUrnik("Petek", 6, razred, pet6, pet6u);

    populateUrnik("Ponedeljek", 7, razred, pon7, pon7u);
    populateUrnik("Torek", 7, razred, tor7, tor7u);
    populateUrnik("Sreda", 7, razred, sre7, sre7u);
    populateUrnik("Četrtek", 7, razred, cet7, cet7u);
    populateUrnik("Petek", 7, razred, pet7, pet7u);

    populateUrnik("Ponedeljek", 8, razred, pon8, pon8u);
    populateUrnik("Torek", 8, razred, tor8, tor8u);
    populateUrnik("Sreda", 8, razred, sre8, sre8u);
    populateUrnik("Četrtek", 8, razred, cet8, cet8u);
    populateUrnik("Petek", 8, razred, pet8, pet8u);

    populateUrnik("Ponedeljek", 9, razred, pon9, pon9u);
    populateUrnik("Torek", 9, razred, tor9, tor9u);
    populateUrnik("Sreda", 9, razred, sre9, sre9u);
    populateUrnik("Četrtek", 9, razred, cet9, cet9u);
    populateUrnik("Petek", 9, razred, pet9, pet9u);

    populateUrnik("Ponedeljek", 10, razred, pon10, pon10u);
    populateUrnik("Torek", 10, razred, tor10, tor10u);
    populateUrnik("Sreda", 10, razred, sre10, sre10u);
    populateUrnik("Četrtek", 10, razred, cet10, cet10u);
    populateUrnik("Petek", 10, razred, pet10, pet10u);

    populateUrnik("Ponedeljek", 11, razred, pon11, pon11u);
    populateUrnik("Torek", 11, razred, tor11, tor11u);
    populateUrnik("Sreda", 11, razred, sre11, sre11u);
    populateUrnik("Četrtek", 11, razred, cet11, cet11u);
    populateUrnik("Petek", 11, razred, pet11, pet11u);

因此,正如您所看到的,在调用这些函数时,我只需要更改3件事情: 1-11中的数字和两个文本视图变量pon1、pon1u等(文本视图)

有没有一种方法可以让for循环改变调用dyinamiaclly的变量?也许是这样:

代码语言:javascript
运行
复制
for (int i = 1; i <= 11; i++){
    populateUrnik("Ponedeljek", i, razred, pon(i), pon(i)u);
}

我知道上面的语法是不可能的,但我只是想演示一下我想要实现的目标。

任何其他关于如何改进这个长代码和坏代码的建议都是非常欢迎的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-24 09:03:02

我会考虑重新设计您的代码,如下所示:

代码语言:javascript
运行
复制
static class Razred {}

static class DayDef {}
static class Pon extends DayDef {}
static class Tor extends DayDef {}
static class Sre extends DayDef {}
static class Cet extends DayDef {}
static class Pet extends DayDef {}

static class DayDefU {}
static class PonU extends DayDefU {}
static class TorU extends DayDefU {}
static class SreU extends DayDefU {}
static class CetU extends DayDefU {}
static class PetU extends DayDefU {}

static class Urnik {

    private String string;
    private int i;
    private Razred razred;
    private DayDef dayDef;
    private DayDefU dayDefU;

    public Urnik(String string, int i, Razred razred, DayDef dayDef,
            DayDefU dayDefU) {
                this.string = string;
                this.i = i;
                this.razred = razred;
                this.dayDef = dayDef;
                this.dayDefU = dayDefU;
    }

    // getters and setters for every field

}

public static void main(String[] args) {

    Razred razred = new Razred();

    List<Urnik> urniks = new ArrayList<Urnik> ();

    for (int i = 0; i < 11; i++){
        urniks.add(new Urnik("Ponedeljek", i+1, razred, new Pon(), new PonU()));
        urniks.add(new Urnik("Torek", i+1, razred, new Tor(), new TorU()));
        urniks.add(new Urnik("Sreda", i+1, razred, new Sre(), new SreU()));
        urniks.add(new Urnik("Četrtek", i+1, razred, new Cet(), new CetU()));
        urniks.add(new Urnik("Petek", i+1, razred, new Pet(), new PetU()));
    }

}

但是,如果不能做到这一点,我建议像@dinesh707 707所提议的那样进行反思。

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

https://stackoverflow.com/questions/21328349

复制
相关文章

相似问题

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