?

Log in

No account? Create an account
Previous Entry Share Next Entry
Ох, уж эта Java...
Белка
lerm_ru
Иногда забавные ошибки выскакивают при наборе...
Вот кусочек кода:
 
        Iterator it = nodes.iterator(); 
        StringBuffer sb = new StringBuffer(','); 
        while (it.hasNext()) 
        { 
            String nodeName = (String) it.next(); 
            sb.append(nodeName).append(','); 
        } 
        String list = sb.toString();
Предполагалось, что он составляет строку в виде ",node1,node2,...,nodeN,". Однако, если присмотреться к коду внимательнее, то видно, что получится такая строка: "node1,node2,...,nodeN,"

Проблема заключается в том, что у StringBuffer-а нет конструктора, который принимает char. Зато есть конструктор, который принимает int. Вбитая на автомате запятая в одинарных кавычках воспринимается компилятором как число.
Tags:

  • 1
Мда, даже foolproof Жаба иногда позволяет писать косяки...

А вот в нашем perl'e всё проще и изящнее.
Там это всё - в одну строчку: $list = join ',', '', @nodes, '';

Да, это пестня :)

Мне кажется, или я узнаю это место в коде? :-)

Кажется, кажется... :) Я же говорю - при наборе. Но общее направление хода мыслей правильное.

Эх, Лёша... Это ещё не самое страшное... Самое страшное - это объяснить одному нашему американцу, что нельзя писать UserTransaction ut = new UserTransaction(timeOut);
ut.begin();
....
вообще у меня нет слов от этого нашего коллеги... Хорошо что он уехал в отпуск :)

  • 1