java - Player[] 从数组更改为集合

标签 java java-7 bukkit

我在 IDE 中收到此错误。该错误显示在 Bukkit.getOnlinePlayers() 下:

Required: org.bukkit.entity.Player[]
Found: java.util.Collection               <capture<? extends org.bukkit.entity.Player>>

这是代码。

public List<Player> getTargetV3(Arena arena, Player player, int maxRange, double aiming, boolean wallHack) {



    ArrayList target = new ArrayList();
    Location playerEyes = player.getEyeLocation();
    Vector direction = playerEyes.getDirection().normalize();
    ArrayList targets = new ArrayList();
    Player[] lx;
    int testLoc = (lx = Bukkit.getOnlinePlayers()).length;

    for(int loc = 0; loc < testLoc; ++loc) {
        Player block = lx[loc];
        if(block != player && block.getLocation().distanceSquared(playerEyes) < (double)(maxRange * maxRange)) {
            targets.add(block);
        }
    }}

最佳答案

该错误表明您使用了错误的数据类型(Collection 实例)。您应该将玩家集合转换为数组。

你可以这样做:

Player[] players = playersCollection.toArray(new Player[playersCollection.size()]);

注意:我使用了随机变量名称。调整变量的名称。

关于java - Player[] 从数组更改为集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32130851/

相关文章:

java - 如何使用 Java 在 MongoDB 3 中使用多个过滤器执行文档的批量更新

java - LinkedList并发修改异常

java - Android Quiz App 的答案即使已正确保存也无法正常工作

java - Android 不支持 Java v7+,所以我应该使用多个 catch 还是一个带有 instanceof 检查的 catch?

java - Minecraft ScheduleSyncRepeatingTask Bukkit 到另一个类

java - Bukkit 从库存中移除元素

Java8 流 : Collect elements after a condition is met

java - 从 Java 7 迁移到 Java 8 - 编译错误

java-7 - 适用于 OS X Mavericks 的 Eclipse Indigo 随 Java SE 7 一起推出

java - 从最高到最低排列数字