Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2010, 22:33   #1
elpilasgsm
Пользователь
 
Регистрация: 30.03.2009
Сообщений: 20
По умолчанию Exception in thread "main" java.lang.NullPointerException at Main.main(Main.java:9)

Мигрирую на java с с++
Пишу это:
public class Main {
static final int MAX=200;
public static void main(String[] args) {
Pixel []s = new Pixel [MAX];
for (int i=0;i<s.length;i++)
{
s[i].x=Math.random()*1000;
s[i].y=Math.random()*700;
s[i].cR=Math.random();
s[i].cG=Math.random();
s[i].cB=Math.random();
}
}
}
получаю это:
Exception in thread "main" java.lang.NullPointerException
at Main.main(Main.java:9)
что делать с этим?
elpilasgsm вне форума Ответить с цитированием
Старый 16.09.2010, 08:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
        s[i]=new Pixel();
        s[i].x=Math.random()*1000;
Сойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.01.2011, 21:41   #3
Кофейник
Новичок
Джуниор
 
Регистрация: 17.01.2011
Сообщений: 2
По умолчанию

грызу джаву
задача:
//найти самую короткую из введеных с консоли строк и указать ее длину
import java.io.*;
class ShortString{
public static void main(String[] args){
int size;
String str;
//создаем буфер для чтения
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter a number of strings");
try{
str=br.readLine();
size=Integer.parseInt(str);
//создаем массив для хранения строк
String masStr[]=new String[size];
try{
System.out.println("Enter a string and push Enter->");
for(int i=0;i<size;i++){
masStr[i]=br.readLine();
//переменная для хранения минимального значения длины
String min=masStr[0];
for(i=0;i<masStr.length;i++)
//сравниваем строки
if(min.length()<masStr[i].length()) min=masStr[i];
System.out.println("The shortest string is "+min);
System.out.println("Length of the string is "+min.length());}
}
catch(IOException e){
System.out.print("Enter error"+e);
}
}
catch(IOException e){
System.out.print("Enter error"+e);
}
catch(NumberFormatException e){
System.out.println("Format error");
size=0;
}
}
}
компиляция проходит нормально но при вводе строк выбрасывает NullPointerException
Что не так?
Кофейник вне форума Ответить с цитированием
Старый 17.01.2011, 22:16   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Код:
for(int i=0;i<size;i++){
masStr[i]=br.readLine();
Наверное Вы забыли закрыть фигурную скобку.
netrino вне форума Ответить с цитированием
Старый 18.01.2011, 08:23   #5
Кофейник
Новичок
Джуниор
 
Регистрация: 17.01.2011
Сообщений: 2
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
Наверное Вы забыли закрыть фигурную скобку.
Спасибо что откликнулись.полночи проколупался и нашел как мне кажется оптимальное решение подсократив код.
//найти самую короткую из введеных с консоли строк и указать ее длину
import java.io.*;
class ShortString{
public static void main(String[] args)throws IOException{
int n;
String str;
//создаем буфер для чтения
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter a number of strings");
str=br.readLine();
try{
n=Integer.parseInt(str);
}
catch(NumberFormatException exc){
System.out.println("Invalid format");
n=0;
}
System.out.println ("Enter "+n+ " strings");
//создаем массив для хранения строк
System.out.println("Enter a string and push Enter->");
String masStr[]=new String[n];
for(int i=0;i<n;i++)
masStr[i]=br.readLine();
String min=masStr[0];
for(int i=0;i<n;i++){
//сравниваем строки
if(min.length()>masStr[i].length()) min=masStr[i];
}
System.out.println("The shortest string is "+min);
System.out.println("Length of the string is "+min.length());
}
}
видимо в предыдущем я сильно перемудрил с try-catch блоками и были проблемы с областью видимости переменных.тут я решил не долго парясь выкинуть IOException из main метода.часто встречал в литературе этот прием мне интересно с профессиональной точки зрения это нормально,или хороший тон всетаки обрабатывать его в методе?
Кофейник вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Main Menu MrMorozko Помощь студентам 0 18.12.2009 11:45
Exception in thread "main" java.lang.ClassFormatError: Truncated class file Pti44ka Общие вопросы по Java, Java SE, Kotlin 1 19.11.2009 19:16
Функция main и main(void) Pord Помощь студентам 1 11.12.2008 15:57
параметры main neo-n Общие вопросы C/C++ 1 04.12.2008 08:33
Exception in thread " main " java.lang.ArrayIndexOUTofBounds 3.14oner Общие вопросы по Java, Java SE, Kotlin 2 08.11.2008 11:18