Java.Help

  • Автор теми AkeL.php
  • Дата створення

Hamster

Well-Known Member
И зачем сокет, который null , пытаться закрыть? В этом месте вылезет NullPointerException, такие вещи должен предотвращать сам программер, а не наоборот создавать =)
"Заглушивать" возникшие исключения мягко говоря не есть гуд .
 

Hamster

Well-Known Member
Сколько недочетов в 3х строчках, интересно сколько их всего, ибо в файле минимум 240 строк =)
 

daoway

кот Шрёдингера
Подскажите, что это за варнинги и как с ними бороться.
Код:
FTPClient.java:124: warning: [deprecation] readLine() in java.io.DataInputStream has been deprecated
          while ((str2 = localDataInputStream.readLine()) != null)
                                             ^
FTPClient.java:131: warning: [empty] empty statement after if
          if (localSocket == null);
                                  ^
FTPClient.java:240: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.Vector
            dvl.add(line);
1) это "устаревшие" методы. в жавадоке помечены как deprecated. остались для поддержки обратной совместимости. короче - их не надо использовать
2) если сокет = null _Ничего_не_делаем_бо_только_точка_с_запятой
матюк заслуженный, толку от такой конструкции - ноль.
3) иногда можно поставить @SuppressWarnings("unchecked") чтобы не мучало мозг, или , да, заюзать коллекции с generics
 

GrAndSE

Тёмный
Модератор
3) иногда можно поставить @SuppressWarnings("unchecked") чтобы не мучало мозг
Думал, мол нафиг нужно аннотации использовать, если проще потратив две минуты избавиться от причины, но вот на выходных, когда возился с reflection, понял, что не всегда все получается нормально:
1. Если юзать Class как raw type, то выскакивают одни варнинги.
2. Если заюзать как Class<SomeType>, то при выполнении некоторых действий уже иные :).
Чтобы не заниматься борьбой непонятно с чем, порой легче написать аннотацию. Но в случаях с коллекциями, думаю лучше избавляться от причин :)
 

PainKiller

Пастафарианец
Команда форуму
Супер Модератор
Вобщем трабл какой. Необходим совет=).
Есть некоторая программка. В ней идет рандомная генерация чисел от 0 до 100. Если число больше 80, то выполняется некий метод, который ссылается на xml, получает из него данные выполняется. Этот метод выполнился раз, изменив стек этого-же класса, записав в него ИД из ХМЛ.
Второй вариант - этот же метод перегружен, который просто считает по некой формуле определенное число.
Так вот, возникла такая проблема. Появилась необходимость, чтобы первый вариант метода срабатывал только когда считается второй, в котором есть вероятность, получить от 90 из 100 рандомом, тогда будет число на выходе умножено на 2.
Полного доступа к ядру нет.
Сама ситуация:
Есть в такой игрушке как lineage2 навыки типа дебаф, то-есть эти навыки понижают некие свойства персонажа(аттака, защиту, и тд). Шанс этого считается первой вариацией метода.
Вторая вариация считает повреждения от боевых навыков. Есть вероятность критического удара(нанесение двойного повреждения).
Загвоздка вот чем.
Появился тип дебафа, который срабатывает по вероятности из первого метода, но активируется только по критическому повреждению врага, на котором данный навык активен. Доступа к стеку бафа нету. Идеи?
Зарание спасибо.
 

Cris

Member
ну что я понял так это вот - есть дебаф, есть 2 функции на нем - 1 просто считает урон какбы, но если вторая функция дает число от 90 до 100 , то урон *2?

если так, то попробуй вот что делай вторую функцию и заноси полученое из него число в какуето глобальную переменную, ну или просто доступной этим двум функциям, и в первой функции смотри эту переменную....

ели я тебя не так понял то разкажи еше раз и скажи что это за дебаф для примера)
 

PainKiller

Пастафарианец
Команда форуму
Супер Модератор
Вобщем трабл какой. Необходим совет=).
Есть некоторая программка. В ней идет рандомная генерация чисел от 0 до 100. Если число больше 80, то выполняется некий метод, который ссылается на xml, получает из него данные выполняется. Этот метод выполнился раз, изменив стек этого-же класса, записав в него ИД из ХМЛ.
Второй вариант - этот же метод перегружен, который просто считает по некой формуле определенное число.
Так вот, возникла такая проблема. Появилась необходимость, чтобы первый вариант метода срабатывал только когда считается второй, в котором есть вероятность, получить от 90 из 100 рандомом, тогда будет число на выходе умножено на 2.
Полного доступа к ядру нет.
Сама ситуация:
Есть в такой игрушке как lineage2 навыки типа дебаф, то-есть эти навыки понижают некие свойства персонажа(аттака, защиту, и тд). Шанс этого считается первой вариацией метода.
Вторая вариация считает повреждения от боевых навыков. Есть вероятность критического удара(нанесение двойного повреждения).
Загвоздка вот чем.
Появился тип дебафа, который срабатывает по вероятности из первого метода, но активируется только по критическому повреждению врага, на котором данный навык активен. Доступа к стеку бафа нету. Идеи?
Зарание спасибо.
Перечитай. Не катит.
 
A

AkeL.php

Guest

Проблема. При компиляции пишет:
UpdateMyDB.java:83: non-static variable this cannot be referenced from a static context
new Thread(new downloadUpdates(getProgressBar())).start();
^
1 error
Локализирую:
Код:
public static void download(){
		new Thread(new downloadUpdates(getProgressBar())).start();
	}
 

Hamster

Well-Known Member
Так как статические методы существуют отдельно от объектов самого класса, то в них нельзя использовать ссылку "this". Так как класс downloadUpdates.class является внутренним, то он тоже "this" =)

Самое быстрое решение - внутренние классы вынести в отдельные. А аффтору не мешало бы почитать хотя бы Code Convention.
 
Зверху