Вниз  Микростатьи и хитрости Java
- 2.06.2013 / 09:56
SilentKnight
  Пользователь

SilentKnight 
Сейчас: Offline
Еще в тему: на SonyEricsson метод InputStream.skip(long n) возвращает не количество действительно пропущенных в этот раз байт, а текущую позицию в потоке. Поэтому конструкции вида

  1. currpos += is.skip(n);

не работают, по крайней мере для потоков, открытых на файлах (на других не проверял). Пришлось забить на эту проверку и писать вот так:

  1. is.skip(n);
  2. currpos += n;

- 2.06.2013 / 10:21
kiriman
  Пользователь

kiriman 
Сейчас: Offline
Если Вы расширяете какой либо класс, то Netbeans IDE предложит Вам добавить методы этого класса посредством нажатия на подсказку. Нажав на нее Вы получите методы вроде:
  1. public void writeDouble(double v) throws IOException {
  2. throw new UnsupportedOperationException("Not supported yet.");
  3. }
Старайтесь удалять этот ненужный выброс исключения!
Класс UnsupportedOperationException не поддерживают телефоны на JP-7.
Если он присутствует в коде(обработка/выброс исключений), прога выбросит ClassNotFoundException, будет ошибка приложения. Да и вообще, не упоминайте в коде классы, которых нет в архиве мидлета.

Изменено kiriman (2.06 / 10:25) (всего 5 раз)
- 2.06.2013 / 10:27
kiriman
  Пользователь

kiriman 
Сейчас: Offline
Причем ошибка приложения будет сразу при запуске!
- 2.06.2013 / 10:55
Salat-Cx65
  Пользователь

Salat-Cx65 
Сейчас: Offline
Ну так IndexOutOfBounds по моему само собой должно быть понятно что в текстфилде/боксе будет при 0,0 в доках же прямо указано что начало и конец, логично что конец должен быть больше начала. А у тебя они равны. Ты ж строку не режеш так string.substring(0,0)
- 2.06.2013 / 11:58
kiriman
  Пользователь

kiriman 
Сейчас: Offline
Salat-Cx65, Я написал ИЛИ. Если (0, 7) то будет ошибка.
- 14.11.2013 / 12:54
Naik
  Пользователь

Naik 
Сейчас: Offline
Если в методе много комманд return, и перед каждой нужно выполнить определенный код,
то можно использовать блок try-finally. Пример:

  1.     int x, y;
  2.     int screenW = 240, screenH = 320;
  3.     boolean edgeLeft, edgeRight, edgeUp, edgeDown;
  4.  
  5.     // Каждый раз вызывается draw().
  6.     public void move(int dx, int dy) {
  7.         if (dx + x > screenW) {
  8.             edgeRight = true;
  9.             draw();
  10.             return;
  11.         } else if (dx + x < 0) {
  12.             edgeLeft = true;
  13.             draw();
  14.             return;
  15.         }
  16.         if (dy + y > screenH) {
  17.             edgeDown = true;
  18.             draw();
  19.             return;
  20.         } else if (dy + y < 0) {
  21.             edgeUp = true;
  22.             draw();
  23.             return;
  24.         }
  25.         x += dx;
  26.         y += dy;
  27.         draw();
  28.     }
  29.  
  30.     // Исправлено.
  31.     public void move(int dx, int dy) {
  32.         try {
  33.             if (dx + x > screenW) {
  34.                 edgeRight = true;
  35.                 return;
  36.             } else if (dx + x < 0) {
  37.                 edgeLeft = true;
  38.                 return;
  39.             }
  40.             if (dy + y > screenH) {
  41.                 edgeDown = true;
  42.                 return;
  43.             } else if (dy + y < 0) {
  44.                 edgeUp = true;
  45.                 return;
  46.             }
  47.             x += dx;
  48.             y += dy;
  49.         } finally {
  50.             draw();
  51.         }
  52.     }
  53.  
  54.     private void draw() {
  55.         //...
  56.     }

- 27.12.2013 / 13:02
Naik
  Пользователь

Naik 
Сейчас: Offline
P@bloid (26.08.2010/14:20)Очень часто в различных приложениях возникают проблемы с кодировкой. Чаще всего причина этого - использование InputStream/OutputStream. Чтобы избежать этих проблем, можно использовать классы InputStПост #26835
В android/java se можно еще обернуть InputStreamReader в BufferedReader и считывать поток по строкам
  1. try {
  2.     BufferedReader reader = new BufferedReader(new InputStreamReader(connection.openInputStream());
  3.     String line;
  4.         while ((line = reader.readLine()) != null) {
  5.              //..
  6.         }
  7.     } catch (IOException e) {
  8. }

- 6.02.2014 / 20:26
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
Samsung на bada 1.1 игнорирует цвет magenta 0xff00ff, пример можно увидеть в мини коммандере, там архивы именно этим цветом подсвечиваются, игнорирует исключения(null pointer, array out of bounds и т.д.). Возможно и на других Samsung-ах такая беда.
__________________
 знает толк

Изменено vl@volk (6.02 / 20:26) (всего 1 раз)
- 29.04.2014 / 23:31
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
Как понять причину NullPointerException без дебаггера для самых маленьких.

Изменено Ксакеп (29.04 / 23:32) (всего 1 раз)
- 14.10.2014 / 22:39
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Может пригодится. Чтоб пост зря не пропадал.

Варианты создания потоков
__________________
 let live
Наверх  Всего сообщений: 83
Фильтровать сообщения
Поиск по теме
Файлы топика (6)