primeiro não faça concatenações com String, use de preferência StringBuilder (Java 5 ou >) ou pelo menos StringBuffer e o método append.
Que tipo de objeto você retorna em contrato.getItemContratacao()?
é um array? (prpriedade length)
A classe String possui um contrutor para arrays de tipos primitivos, só que este método ira iterar o seu array.
Existe a API java.util.Arrays, um exemplo:
[code] JButton[] but = new JButton[10];
for(int i=0; i<10; i++)
but[i] = new JButton("teste "+i);
String teste = java.util.Arrays.deepToString(but);
System.out.println(teste);
A classe StringBuilder substitui a classe StringBuffer, com todos os métodos. O importante é o conceito destas classes, veja:
String a = “CASA”;
a = a + “S”;
neste caso você criou duas instâncias de String, porque String é “imutável”. A String “CASA” fica a disposição para o garbage, enquanto que a instância “CASAS” fica associada a variável a.
Agora com StringBuffer:
StringBuffer buf = new StringBuffer(“CASA”);
buf.append(“S”);
é a mesma String, não ocorre a instanciaçã, logo é mais rápido.
Existem uma grande gama de métodos que modificam a String e que fazem falta na classe String, tais como reverse etc.
StringBuilder NÃO substitui a classe StringBuffer.
A principal diferença entre elas é que StringBuilder não é thread-safe (seu métodos não são synchronized), enquanto que StringBuffer é.
Pode haver situações em que se usa uma, em outras se utiliza outra. Portanto cuidado.
haha vc escreveu tudo como StringBuilder. O correto ficaria
StringBuilder NÃO substitui a classe [color=red]StringBuffer[/color].
A principal diferença entre elas é que StringBuilder não é thread-safe (seu métodos não são synchronized), enquanto que [color=red]StringBuffer [/color]é.