Java数组正在重写:(

时间:2016-04-24 14:21:50

标签: java

我的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());

}                                            

2 个答案:

答案 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将使用相同的内容重新声明。我建议考虑如何编辑这个字符串的内容。