я получаю эту ошибку:Как решить возвращающий массив в пустой массив Java
Exception in thread "main" java.lang.NullPointerException at BattleshipCMDGame.GenerateShips(BattleshipCMDGame.java:33) at BattleshipCMDGame.main(BattleshipCMDGame.java:7)
Все, что я хочу сделать, это вернуть вновь созданный массив типа класса в моем методе в пустой массив, созданный в основной метод. Вот мой код:
import java.util.*;
public class BattleshipCMDGame
{
public static void main(String[] args)
{
Ship[] ship = GenerateShips(3);
Scanner in = new Scanner(System.in);
for (int i = 0; i < ship.length; i++)
{
System.out.println(ship[i].GetName() + " : Location - " + ship[i].GetLocation());
}
}
public static Ship[] GenerateShips(int numShips)
{
Ship[] ship = new Ship[numShips];
Random rand = new Random();
int randLoc;
String prevRands = "";
String randToString = "";
for (int i = 0; i < ship.length; i++)
{
randLoc = 1 + rand.nextInt(7);
randToString = Integer.toString(randLoc);
for (int z = 0; z < ship.length; z++)
{
prevRands = "";
if (ship[z].GetLocation() != 0)
{
prevRands += Integer.toString(ship[z].GetLocation());
}
}
while (prevRands.contains(randToString))
{
randLoc = 1 + rand.nextInt(7);
randToString = Integer.toString(randLoc);
}
ship[i] = new Ship("Ship no. " + (Integer.toString(i)), randLoc);
}
return ship;
}
}
что линия 33? –
Как отмечалось в ходе миграции, вопросы реализации лучше всего решать на SO, а не P.SE. Вопросы работы с [null pattern] (http://en.wikipedia.org/wiki/Null_Object_pattern) или лучший выбор передачи нулевого значения против пустого ArrayList или запрос о точках ошибки [The Billion Dollar Mistake] (http://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare) будет более подходящим для P.SE (хотя посмотрите, есть и другие вопросы по этой теме). –
Как в сторону, особенно для этого кода, посмотрите на [StringBuilder] (http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html), а не на 'prevRands + = Integer.toString (...); 'Вероятно, вы создаете и отбрасываете много ненужных строк. –