0

OK、Android ゲームをスムーズに実行していますが、レベルを上げることができません。次の警告も表示されます: 説明 リソース パスの場所 タイプ タイプの安全性: メソッド addElement(Object) は生のタイプ Vector に属します。ジェネリック型 Vector への参照はパラメーター化する必要があります LevelManager.java/FROZEN BUBBLES/src/org/bigdaddyapp/android/frozenbubbles 32 行目 Java 問題

import android.os.Bundle;
import java.util.Vector;

public class LevelManager {
private int currentLevel;
private Vector levelList;

public void saveState(Bundle map) {
    map.putInt("LevelManager-currentLevel", currentLevel);
}

public void restoreState(Bundle map) {
    currentLevel = map.getInt("LevelManager-currentLevel");
}

public LevelManager(byte[] levels, int startingLevel) {
    String allLevels = new String(levels);

    currentLevel = startingLevel;
    levelList = new Vector();

    int nextLevel = allLevels.indexOf("\n\n");
    if (nextLevel == -1 && allLevels.trim().length() != 0) {
        nextLevel = allLevels.length();
    }

    while (nextLevel != -1) {
        String currentLevel = allLevels.substring(0, nextLevel).trim();

        levelList.addElement(getLevel(currentLevel));

        allLevels = allLevels.substring(nextLevel).trim();

        if (allLevels.length() == 0) {
            nextLevel = -1;
        } else {
            nextLevel = allLevels.indexOf("\n\n");

            if (nextLevel == -1) {
                nextLevel = allLevels.length();
            }
        }
    }

    if (currentLevel >= levelList.size()) {
        currentLevel = 0;
    }
}

private byte[][] getLevel(String data) {
    byte[][] temp = new byte[8][12];

    for (int j = 0; j < 12; j++) {
        for (int i = 0; i < 8; i++) {
            temp[i][j] = -1;
        }
    }

    int tempX = 0;
    int tempY = 0;

    for (int i = 0; i < data.length(); i++) {
        if (data.charAt(i) >= 48 && data.charAt(i) <= 55) {
            temp[tempX][tempY] = (byte) (data.charAt(i) - 48);
            tempX++;
        } else if (data.charAt(i) == 45) {
            temp[tempX][tempY] = -1;
            tempX++;
        }

        if (tempX == 8) {
            tempY++;

            if (tempY == 12) {
                return temp;
            }

            tempX = tempY % 2;
        }
    }

    return temp;
}

public byte[][] getCurrentLevel() {
    if (currentLevel < levelList.size()) {
        return (byte[][]) levelList.elementAt(currentLevel);
    }

    return null;
}

public void goToNextLevel() {
    currentLevel++;
    if (currentLevel >= levelList.size()) {
        currentLevel = 0;
    }
}

public void goToFirstLevel() {
    currentLevel = 0;
}

public int getLevelIndex() {
    return currentLevel;
}

}

4

1 に答える 1

0

Eclipse 環境では、ジェネリックを使用しないという警告が表示されるため、使用する必要があります。

private Vector<byte[][]> levelList;

代わりは。

別の方法として、Eclipse の設定で警告をオフにすることもできますが、それはお勧めしません。警告はあなたを助けるためにあります。

Levelを使用する代わりに のクラスを作成することもお勧めしますbyte[][]

于 2012-04-11T01:07:04.520 に答える