我有一个“字符”类,其中包含“状态”对象的ArrayList。这些状态对象具有方法trigger(Character charac),该方法需要使用存储在其中的字符对象:
public abstract class State {
private int turns;
public void trigger(Character charac){
action(charac);
turns--;
}
public abstract void action(Character charac);
}
当我尝试使用“ this”作为参数时(在下面的triggerStates方法中查看),netbeans告诉我“不兼容的类型:projet.m1s1.Character无法转换为java.lang.Character”
public class Character extends Living{
private ArrayList states;
public Character(String name,int life, int mana, int strengh, int intelligence, int armor){
super(name,life,mana,strengh,intelligence,armor);
states = new ArrayList();
}
public void triggerStates(){
for(int i=0 ; i<states.size() ; i++){
try{
State sta = (State)states.get(i);
sta.trigger(this);
}
catch (ClassCastException e){
System.out.println("ClassCastException in Character.TriggerStates");
}
}
}
}
希望我让自己很清楚,并且不问一个常见问题。
预先感谢您的回答!
答案 0 :(得分:0)
您在导入中导入了错误的类。您应该导入java.lang.Character
时已经导入了projet.m1s1.Character
。
在本地运行代码时,这种方式没有问题。
答案 1 :(得分:0)
最后设法使其工作,这两个类位于单独的程序包中,我只需要导入“ import projet.m1s1.Character;”即可。在国家班上