我正在开发一个简单的客户端 - 服务器游戏,其中客户端一旦成功登录将通过其包含更新游戏所需的25个单词的数组通知其观察者。客户端正在发送正确的信息,但GUI中的更新方法不是。更新方法如下。
public void update(Observable o, Object arg) {
if (arg[0].equals("true1")) {
for(int i = 1; i <26; i++]){
String [i] words = args[i]; // sets the words to the args
}
player = new PlayerView(client, words); // creates new playerview taking the client and an array of words
this.setContentPane(player); // sets player view to content pane
}
}
当我尝试这个时,我收到以下错误:
表达式的类型必须是数组类型,但它已解析为Object
我已经尝试在if语句之前强制转换args,但这似乎不起作用
答案 0 :(得分:0)
这样做:
arg
实际上是一个字符串数组(String [])words
声明为大小为25的数组(如果我能正确理解您的算法)这应该有效
public void update(Observable o, Object arg) {
// check that it is indeed an array
if(arg instanceof String[]) {
// cast it into an array
String[] argArray = (String[]) arg;
// make your words array
String[] words = new String[25];
if (argArray[0].equals("true1")) {
for(int i=1; i<26; i++) {
words[i-1] = argArray[i];
}
player = new PlayerView(client, words); // creates new playerview taking the client and an array of words
this.setContentPane(player); // sets player view to content pane
}
}
}