Problemas em converter object em string

12 respostas
jemoliveira

pessoal tenho uma duvida

estou tentando converter uma um objetc em um array

public BusinessResponse processRequest(BusinessRequest req) 
	throws BusinessException {
		 
		DynamicClientFactory dcf = DynamicClientFactory.newInstance();
		Object infos = null;
		Object formatedFile = null;
		try {
			
			Client client = dcf.createClient(this.urlService);
			infos = req.getObject();
			
			formatedFile = client.invoke("montarDiario", new Object[] {infos.toString(), ""});
		} catch (Exception e) {
			throw new BusinessException(e); 
		}
		
		BusinessResponse resp = new BusinessResponse();
		resp.setObject(formatedFile);
		return resp;
	}

esse minha variavel infos vem com informações

qd chega nessa linha tenho que converter ele como string senão ele da problema de cast
formatedFile = client.invoke(“montarDiario”, new Object[] {infos.toString(), “”});

ate ai tudo bem o unico problema que ao invez de retornar as informações numa string ele vem com o nome do objeto: [[Ljava.lang.String;@4f0da9]

espero por respostas

12 Respostas

M

Se infos é uma String que vem em forma de Object, basta fazer um cast direto, como:

String texto = "Olá mundo!";
Object o = texto;
System.out.println(o); // vai imprimir a referência de memória do objeto
System.out.println((String) o); // o String entre parentêses faz o cast e imprime-se Olá mundo!
jemoliveira

fiz isso

formatedFile = client.invoke(“montarDiario”, new Object[] {(String) infos, “”});
e me dei pau de Cast

java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String

uma forma que não sei se da pra fazer
meu formatedFile retorno o nome do objeto, tem como ele me retornar os dados com uma conversão ou algo do tipo?

B

Você está tentando converter um array de Strings para um String.

jemoliveira

isso mesmo!!!

B

Isso mesmo o quê? Quer concatenar essas Strings dentro de uma só? Terá algum caracter para indicar quando uma String termina?

jemoliveira

então
quero concatenar esse meu array de string em uma string só, mais não existe caracter que diz quando termina

M

Se você quer concatenar todas as Strings em uma só, poderia usar:

public String concatenaTudo(String... array) {
    StringBuffer sb = new StringBuffer();
    for (String s : array) {
        sb.apend(s);
        sb.apend("\n");
    }
    return sb.toString();
}

public static void main(String[] args) {
    String[] strings = {"linha1", "linha2", "linha3"};
    System.out.printl(concatenaTudo(string));
}

Não testei, mas não custa tentar. Qualquer coisa, poste aqui.

B

Este método deve servir p/ transformar String[] em String

private String flatten (String[] array)
{
  StringBuilder sb = new StringBuilder();

  for (String s : array)
    sb.append(s);

  return sb.toString();
}
M
Bruno Laturner:
Este método deve servir p/ transformar String[] em String
private String flatten (String[] array)
{
  StringBuilder sb = new StringBuilder();

  for (String s : array)
    sb.append(s);

  return sb.toString();
}
Qual a diferença em usar StringBuilder e StringBuffer?
sowyer

só que uma garante a sincronização e o outro não …

mas vou ficar devendo agora quem é quem …

:oops: :oops: :oops:

B

Dica… Consulte a API.

http://java.sun.com/javase/6/docs/api/

M

sowyer:
só que uma garante a sincronização e o outro não …

mas vou ficar devendo agora quem é quem …

:oops: :oops: :oops:


Exatamente. StringBuffer é thread-safe, enquanto StringBuilder não garante questões de sincronização.

Criado 13 de janeiro de 2009
Ultima resposta 13 de jan. de 2009
Respostas 12
Participantes 5