我的java项目出了问题。我需要从数组中删除元素,这是需要处理的。但问题是即使它删除了元素(我在调试中检查过),当我点击按钮时,据我所知,它基本上重写了数组,所以我删除元素的事实甚至不重要。有什么建议吗?
public class Words {
Random r = new Random();
public String[] poleSlov = {"a","b","c","d","e","f","g","h","i"};
public String chooseRandomWord() {
int tmp = r.nextInt(poleSlov.length);
String p = poleSlov[tmp];
String[] result = new String[poleSlov.length - 1];
for (int i = 0; i < result.length; i++) {
result[i] = poleSlov[((i < tmp) ? i : i + 1)];
}
poleSlov = result.clone();
return p;
}
}
private void btnNoveSlovoActionPerformed(java.awt.event.ActionEvent evt) {
Words s = new Words();
labSlovo.setText(s.chooseRandomWord());
}
答案 0 :(得分:1)
/**
* Until url{https://jira.spring.io/browse/DATAREST-573} is fixed
*
* @return
*/
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
//config.setAllowCredentials(true); // you USUALLY want this
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("OPTIONS");
config.addAllowedMethod("HEAD");
config.addAllowedMethod("GET");
config.addAllowedMethod("PUT");
config.addAllowedMethod("POST");
config.addAllowedMethod("DELETE");
config.addAllowedMethod("PATCH");
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
创建一个新的btnNoveSlovoActionPerformed()
实例,其中包含一个新的Words
数组。由于poleSlov
是一个局部变量,在s
返回后,它所引用的对象不再可访问。
一种可能的解决方法是在当前实例上调用btnNoveSlovoActionPerformed()
:
chooseRandomWord()
答案 1 :(得分:0)
这是因为实际的字符串poleSlov
始终相同。创建新的单词实例时,poleSlov
将使用相同的内容重新声明。我建议考虑如何编辑这个字符串的内容。