从数组返回单个字符串

时间:2013-09-06 14:29:19

标签: java

我试图在libGDX中编写简单的游戏,但这个问题会停止创建该游戏的整个过程。 这是两个类。

public class Question {

private static float getFontX() {
    return Assets.font.getBounds(Database.getText()).width / 2;
}

private static float getFontY() {
    return Assets.font.getBounds(Database.getText()).height / 2;
}

public static void draw(SpriteBatch batch) {

    Assets.font.draw(batch, Database.getText(),
                             TOFMain.SCREEN_WIDTH / 2 - getFontX(),
                             getFontY() + 250 + TOFMain.SCREEN_HEIGHT / 2);
           //drawing some text from database on screen in the middle of screen;

}

,第二个类是数据库,它包含问题

public class Database {

private static String questions[] = new String[2];
{
    questions[0] = "Some question1";
    questions[1] = "Some question2";
}

static public String getText() {
    return questions[0];
}
}

中存在问题
return questions[0]

因为如果我在那里写例如

return "This will work";

一切都很好。

2 个答案:

答案 0 :(得分:1)

您需要将初始化块更改为静态初始化块。

static {
    questions[0] = "Some question1";
    questions[1] = "Some question2";
}

如果您不创建数据库类的新实例,请执行以下操作:

Database db = new Database();

不会调用动态初始化块。这就是为什么需要使用通过类调用的静态初始化块的原因。

答案 1 :(得分:1)

您可以将Database类中的数组声明为:

public class Database {

private static String questions[] = new String[]{
    "Some question1", "Some question2"
};


static public String getText() {
    return questions[0];
}

}

然后它返回你想要的String