我在 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/