LINUX.ORG.RU
ФорумTalks

Ох уж этот быдлоязык Java :)


0

0

скажите, уважвемые, а планируется ли в мустанге вводить а-ля ref и out как в C#? Понадобилося мне метод, в Mono я его писал так GetSomePersistentObjects(Entity e, int start, int end, out int count). Встал вопрос о введении нового объекта Count :)))

anonymous

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

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

Ну хорошо, посоветуй тогда хорошее решение приведенного мной задания? Я не вижу ничего, кроме как делать тупой класс

anonymous
()
Ответ на: комментарий от anonymous

Ты сперва объясни, что за задание такое. Насколько понял, тут нужно контейнер. Если же задание состоит именно в создании тупого класса Count - ВСЛ тебе в помощь.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

Задание такое: Есть Stateless EJB LocalHome. Его клиент должен иметь возможность получать коллекцию объектов по определенному запросу, при этом указывая параметры START и END (постраничный выбор). Также он должен получать общее кол-во этих объектов.

В С# я бы написал так:

class MyBean
{
public IList GetSomeObjects(String query, int start, int end, out int count)
{
// do some work
count = 666;
}
}

в жабе же приходит на ум только это:

class ByRef<T> {
public T value;
}

class MyEJBean {
public List getSomeObjects(String query, int start, int end, ByRef<int> count) {
// do some work
count.value = 666;
}
}

anonymous
()
Ответ на: комментарий от anonymous

Э-э, а хто мешает возвращать пару объектов?

class Cons<Car, Cdr> { public Car car; public Cdr cdr; }

Я Java5 не знаю. Если бы там было partial template instantiation (как в C++), то лучше всего было бы реализовать кортежи (tuples). Но для твоего случая вполне подойдут пары.

Begemoth ★★★★★
()
Ответ на: комментарий от anonymous

Хм, как _тупой_ вариант

public Hashtable getSomeObjects(String query, int start, int end) {
        // do somework with List list and int count
        Hashtable ht = new Hashtable ();
        ht.put ("list", list);
        ht.put ("count", new Integer (count));
        return ht;
}

или дальнейшие подобные извращения с например HashMap или другим.

как правильный вариант, создаёш некоторый класс, 
в котороый входит и список и count, потому что эти два 
логически объединены, и хорошим поступком было бы 
объеденить их в один объект. То, что жаба предполагает
написание прог с соблюдением хороших манер, ИМХО правильно.

bugmaker ★★★★☆
()
Ответ на: комментарий от unnamed

И будет в общем-то правый. Вот только никуда не денешся, быдлокодерство есть, оное не может неесть.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

тогда уж действительно некий

class PagedResult<List<T>, T1> { ... }

anonymous
()
Ответ на: комментарий от anonymous

Думается, на theserverside.com или javalobby.com такие примеры уже по 100 раз разжевали, пошарься по их форумам

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.