在ArrayList中组合两个字符串

时间:2016-08-02 21:52:36

标签: java

我想知道是否可以组合我设置的两个字符串 -

我想要做的是当玩家输入命令" /规则添加规则在这里" 它将添加文本" Rule Goes Here"以配置文件作为列表,配置文件将如下所示:

  

规则:

     
      
  • 规则1

  •   
  • 规则2

  •   

我尝试用于命令的代码如下所示:

if (args[0].equalsIgnoreCase("add"))
      { 
        ArrayList<String[]> list1 = new ArrayList<String[]>();
        List<String[]> c = plugin.getConfig().getList("rules");

        c.list1.addAll(Arrays.asList(args));

        return true;
      }

&#34;插件&#34;是插件的主要类,所以一切都被激活使用。那就是生成配置的地方。

我试图使用我在bukkit论坛上找到的代码 -     plugin.getConfig().getList("rules").add(args); 但是没有运气,因为我得到错误说明:

  

add(capture#4-of ?)类型中的方法List<capture#4-of ?>不适用于参数(String[]

现在可能是一个愚蠢的问题,而且大多数人都喜欢,但我当然还是初学者。 如果你能帮我解决这个问题,我将非常感激。 谢谢!

3 个答案:

答案 0 :(得分:2)

您需要List<?>具有实际类型,您不能改变具有通配符类型的对象。

答案 1 :(得分:0)

也许这就是你要找的东西:

c.list1.addAll(Arrays.asList(args));

但是你需要更准确地描述你想对哪些列表做什么。

答案 2 :(得分:0)

这实际上是一个有趣的任务,虽然这不是你应该做的java作为一个启动器(编写minecraft插件没有至少java的基础知识将无法工作)

至于你的问题,以下将是一种方法,可能有错误,因为我没有我可以测试它的我的世界服务器。

获取用户在聊天中写入规则的ArrayList<String>很简单:

ArrayList<String> a = new ArrayList<>();
    for(String s : args){
        a.add(s);
    }

现在要将这些规则添加到您的配置中,bukkit确实提供了一个设置值的函数,set(String, Object)是准确的。可以找到文档here

所以你可以这样做:

plugin.getConfig().set("Rules", a);

如果结果是您想要的结果,如果不是,请准确说明该功能有什么问题。

另外请注意,如果没有其他插件或插件使用"Rules"作为访问它们的密钥(根据我的知识至少),添加这些规则将无法做太多。

编辑:

以上是可能的,但以下可能也有效:

if(plugin.getConfig().getList("rules")){
   plugin.getConfig().getList("rules").add(Arrays.asList(args));
 }

不要忘记这种方式可以重复!列表和(据我所知)它的所有实现都不会检查重复的条目!