Oi Leandro,

Na verdade, fui eu que fiz a pergunta original.

Sei que uma função nao pode retornar mais de
um valor, mas quiz dizer que há outras formas
de fazer isso, dependendo da linguagem. Por
exemplo, em PL/SQL no Oracle é muito comum fazer
procedures (que não retornam valor) com diversos
parâmetros tipo OUT (saída), que, em última
análise, "retornam" valores para quem chamou,
o que, claro, não é possível dessa forma em Java.

Eu fiz uns testes, e o problema que detectei em usar vetores
para fazer isso em Java, é que em tempo de compilação
não há como checar o que será retornado.
Por exemplo, o código abaixo compila Ok mas dá
erro de execução:

//===============================
import java.util.*;

class X {

  class Classe1 {}
  class Classe2 {}

  Vector metodo1() {
    Vector v = new Vector();
    v.addElement(new Classe2());
    v.addElement(new Classe1());
    return v;
  }

  public static void main(String argv[]) {
    Classe1 c1;
    Classe2 c2;
    Vector v;
    X x = new X();

    v = x.metodo1();
    c1 = (Classe1)v.elementAt(0);
    c2 = (Classe2)v.elementAt(1);
  }
}
//==============================

Exception in thread "main" java.lang.ClassCastException: X$Classe2
        at X.main(X.java:23)

Fora isso, funciona perfeitamente - obrigado a todos pela dica!

Luis Cabral

----- Original Message -----
From: "Leandro Bitencourt" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Monday, October 22, 2001 11:21 AM
Subject: RE: [java-list] Método retornando 2 objetos



Fabio,

Primeiro lugar, vc nao esta retornando dois valores, vc esta setando um por
indirecao (int *r1=20) e retornando outro (20).

Por definicao uma funcao nao pode retornar 2 valores, seja na linguagem q
for.

Qto a retornar 2 objetos, vc pode fazer uma array de objetos... um vector,
uma collection... tem duzias de maneiras de fazer isto.

Abraços,

Leandro Bitencourt
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
ICQ: 69948464


-----Original Message-----
From: Fabio Hasegawa [mailto:[EMAIL PROTECTED]]
Sent: segunda-feira, 22 de outubro de 2001 09:54
To: [EMAIL PROTECTED]
Subject: RE: [java-list] Método retornando 2 objetos


Pode utilizar collections........

List, Map, Set.....

Qualquer coisa....
[]´s

Fábio

-----Original Message-----
From: Luis Cabral [mailto:[EMAIL PROTECTED]]
Sent: Sunday, October 21, 2001 6:39 PM
To: [EMAIL PROTECTED]
Subject: [java-list] Método retornando 2 objetos


Olá

Tenho uma dúvida, que ao mesmo tempo prova
que em Java não existe passagem de parâmetros
por referência...

Como fazer um método retornar 2 objetos *diferentes*?
Em C por exemplo, eu poderia usar um parâmetro
por referência para que fosse retornado nele um valor:

int funcao(int *r1)
// esta funcao retorna 2 inteiros: 10 e 20
{
*r1 = 10;
return 20;
}

E em Java?

Uma opçao seria retornar um array, mas sendo
dois objetos diferentes, precisaria ser um array de object's,
ou tem outra forma?




------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------



------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.286 / Virus Database: 152 - Release Date: 9/10/2001

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.286 / Virus Database: 152 - Release Date: 9/10/2001



--------------------------------------------------------------------------------


------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------


------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a