Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
рандом игрок из L2World
#31
У вас наверняка возвращается неиндексированная коллекция. Collection - это интерфейс. Set и List также интерфейсы. Вот только разница между ними есть, небольшая Smile Рекомендую для себя на досуге почитать про JCF вцелом.

Гугл быстро дает ссылки на полезное чтиво: http://stackoverflow.com/questions/12467...from-a-set
Ответ
#32
Спасибо, сейчас прочту.
Может быть я чего то недопонимаю, но мне нужно вернуть всего-лишь 1 обьект из всей коллекции. Смысл ошибки компиля не могу разобрать.
[Изображение: ck.gif]
Ответ
#33
Ошибка в том, что у вас, вероятно, метод возвращает производные интерфейса Set. Сеты не индексированы, у них нет метода get(int index). В ссылке, что я привел выше, одним из вариантов является преобразование сета в массив, далее взятие элемента по произвольному индексу.
Ответ
#34
Не легче уж этот Collection засунуть в List ?

Код:
List players = new ArrayList(L2World.getInstance().getAllPlayers());
if(players.isEmpty())
    return null;
return players.get(Rnd.nextInt(players.size()));
Ответ
#35
Спасибо, очень хорошая идея.

Код:
private L2PcInstance getThis()
    {
        List players = new ArrayList(L2World.getInstance().getAllPlayers());
            if(players.isEmpty())
                return null;
        
        return players.get(Rnd.nextInt(players.size));
    }

допустим, если сделать вот так.
а потом использовать здесь:

Код:
L2PcInstance player = null;
player = getThis();

в таком случае компиль выдает ошибку:

[Изображение: 8fd137608897t.jpg]
[Изображение: ck.gif]
Ответ
#36
mego4el Написал:
Код:
L2PcInstance player = null;
player = getThis();

Вы в этом месте уверены?
Fortuna - non penis, in manus non recipe.
Ответ
#37
несовсем. подскажите а что я делаю не так?
возвратится должен ведь обьект L2PcInstance
[Изображение: ck.gif]
Ответ
#38
Я одного не могу понять: почему не пользуетесь IDE и Ant для компила и написания кода? Нафиг нужна эта консоль?
Ответ
#39
mego4el Написал:Спасибо, очень хорошая идея.

Код:
private L2PcInstance getThis()
    {
        List players = new ArrayList(L2World.getInstance().getAllPlayers());
            if(players.isEmpty())
                return null;
        
        return players.get(Rnd.nextInt(players.size));
    }

допустим, если сделать вот так.
а потом использовать здесь:

Код:
L2PcInstance player = null;
player = getThis();

в таком случае компиль выдает ошибку:

[Изображение: 8fd137608897t.jpg]

По моему вы один из тех людей, которым проще дать правильный ответ чем пытаться показывать где у вас ошибки. В общем завязывайте с попытками программировать лучше наймите человека который хоть как то может в этом разобраться.
Код:
private L2PcInstance getThis()
    {
        List<L2PcInstance> players = new ArrayList<L2PcInstance>(L2World.getInstance().getAllPlayers());
            if(players.isEmpty())
                return null;
        
        return players.get(Rnd.nextInt(players.size()));
    }
Ответ
#40
Все проще - похоже, человек также пользуется Notepad'ом для внесения изменений. Поставьте любую IDE, хоть NetBeans, у вас такие ошибки пропадут еще на этапе написания кода, т.к. среда сразу подстветит ошибку. Нет паблик-переменной size у List'a, а вот метод size() - есть. В посте выше все правильно написано.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Рандом спавн мобов в L2Emu SWnet 3 2,821 05-29-2009, 11:52 PM
Последний пост: Kabasik
  Двойной клик по итему - выпадает рандом итем Nytrex 19 6,225 07-27-2008, 02:34 AM
Последний пост: SunRise

Перейти к форуму:


Пользователи, просматривающие эту тему: 5 Гость(ей)