Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ArrayList和其他东西_Java_Arraylist_Iterator - Fatal编程技术网

Java ArrayList和其他东西

Java ArrayList和其他东西,java,arraylist,iterator,Java,Arraylist,Iterator,我开始做我的第一个java项目,这是一个非常基本的角色扮演游戏,当然没有gui。现在我正在研究咒语。我创建的法术类包括名称、效果和成本。我创建了SpellsList类,它应该包括所有法术。我有一个特效类,它描述了这个法术的特效,现在只是测试。当施法者施放法术时,我想获得相关的法术效果,因此相关的效果会照顾到法术的效果,我稍后会处理这些效果,现在只是为了测试。我有一个掷骰子的滚筒,但现在没关系 我有几个问题: 代码怎么了? 为什么公共静态字符串[]args{至关重要? 你会用更好的方式施法吗 pu

我开始做我的第一个java项目,这是一个非常基本的角色扮演游戏,当然没有gui。现在我正在研究咒语。我创建的法术类包括名称、效果和成本。我创建了SpellsList类,它应该包括所有法术。我有一个特效类,它描述了这个法术的特效,现在只是测试。当施法者施放法术时,我想获得相关的法术效果,因此相关的效果会照顾到法术的效果,我稍后会处理这些效果,现在只是为了测试。我有一个掷骰子的滚筒,但现在没关系

我有几个问题:

代码怎么了? 为什么公共静态字符串[]args{至关重要? 你会用更好的方式施法吗

public class Spell {
private String name;
private String effect;
private int cost;

Spell(String name, String effect, int cost){
this.name = name;
this.effect = effect;
this.cost = cost;
}

String getSpellName(){
return name;
}

String getEffect(){
return effect;
}

int getCost(){
return cost;
}
}

}

}


}

在主方法中有一个名为getSpellEffect的方法。方法中不能有方法。检查


有什么问题?和public static void mainString[]args{是程序的入口点,您必须从某个地方开始。代码现在有什么错误\问题?运行时会发生什么?您的代码没有平衡的{和}数。请尝试使用IDE或任何其他可以为您缩进代码的编辑器正确缩进它。这里可能有一些{丢失了,在我的代码中没有问题。问题是getSpellEffect,我在声明行上得到表达式的非法开始,在这个方法中,spellsList和Spell显示在redI创建的一个主类中,它只包含公共静态void mainString[]参数{,并且省略了SpellList类中的行,但是我在向列表添加对象时遇到了一个问题add是红色的。我如何解决这个问题?虽然代码可以改进,但是由于您仍在开发,您可以尝试上面提到的代码吗?我修改了SpellsList类,当我使用您的代码时,我在for循环中得到了一个错误,java无法解决找不到symbol spellsList…..是否可以将main方法移动到main类?当我在无法使用add之前这样做时,您知道为什么吗?是否将spellsList变量移动到main方法上方并将其声明为静态。
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;

public class SpellsList {
public static void main(String[] args) {


    List<Spell> spellsList = new ArrayList<Spell>();
    spellsList.add(new Spell("Fireball", "damage", 5));
    spellsList.add(new Spell("Ice Storm", "damage", 8));
    spellsList.add(new Spell("Heal", "heal", 8));


static String getSpellEffect(String spellName) {

    for (Iterator iter = spellsList.iterator(); iter.hasNext(); ) {
        if (iter.next().equals(spellName)) {
            iter.next().Spell.getEffect();
            break;
        }
    }
    }


}
public class Effects {

int damage(int n, int dice, int bonus){

    int damage = Dice.roll(n,dice,bonus);
    System.out.println("You dealt" + damage + "damage to the enemy!");
    return damage;
}

int heal(int n, int dice, int bonus){

    int heal = Dice.roll(n,dice,bonus);
    System.out.println("You healed" + heal + " hit points!");
    return heal;
}
public class Dice {

public static int roll(int dice){

    int sum = 1 + (int)(Math.random() * ((dice - 1) + 1));
    return sum;
}

public static int roll(int n, int dice){

    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum += 1 + (int)(Math.random() * ((dice - 1) + 1));
    }
    return sum;
}

public static int roll(int n, int dice, int bonus){

    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum += 1 + (int)(Math.random() * ((dice - 1) + 1));
    }
    return (sum + n*bonus);
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

    public class SpellsList {

        static List<Spell> spellsList = new ArrayList<Spell>();

        static {

            spellsList.add(new Spell("Fireball", "damage", 5));
            spellsList.add(new Spell("Ice Storm", "damage", 8));
            spellsList.add(new Spell("Heal", "heal", 8));

        }

        static String getSpellEffect(String spellName) {

            String spellEffect = "";

            for (Iterator<Spell> iter = spellsList.iterator(); iter.hasNext();) {
                Spell spell = iter.next();
                if (spellName.equals(spell.getSpellName())) {
                    spellEffect = spell.getEffect();
                    break;
                }
            }
            return spellEffect;

        }
    }
public class Main {

    public static void main(String[] args) {

        System.out.println(SpellsList.getSpellEffect("Fireball"));

    }

}