Help-me please!

Olá a todos,

Alguém poderia me dar um exemplo mais detalhado ou mostrar como devo proceder para gerar uma cópia ou instância de um objeto (tipo um clone) pois no java quando digo q um objeto é igual a outro ele gera um ponteiro para o mesmo endereço de memória. O código eh o seguinte:

[code]
MultipartParser mp = new MultipartParser(request, 30*1024); //30Kb
com.oreilly.servlet.multipart.Part part;

while ((part = mp.readNextPart()) != null) {
if (part.isFile()) {
FilePart filePart = (FilePart)part;
fileName = filePart.getFileName();

if (fileName != null) {
  long size = filePart.writeTo(dirUpload);
}

}
}[/code]

O esquema é o seguinte, preciso gravar um arquivo que é feito upload via brower, e quero gravar ele em uma pasta, e tb no banco de dados, porém com uma única instância desse objeto não é possivel. E tb se eu fizer uma nova instância do construtor MultipartParser, o objeto request será nulo pq ele já foi usado na primeira instância. E dentre todos esses métodos o único q tem construtor é o MultipartParser.

Será que alguém me entendeu? Qualquer coisa eu posto aqui novamente… com mais detalhes!!

“Linux Forever…”

[color=“green”][size=“11”]* Editado para conter a tag CODE em seu código, melhor identação e visibilidade - matheus[/size][/color]

Existe um método chamado clone() na class Object, a mãe-de-todos-os-objetos, que é normalmente inativo. Para acordá-lo, é necessário que a classe derivada implemente a interface Cloneable. O método clone() original produz uma cópia campo-a-campo do objeto. Às vezes, é necessário sobrescrever este método para sofisticar um pouco mais o processo de clonagem.

Meu Deus, pq isso soh acontece comigo!!!

Olá a todos novamente, e obrigado pela ajuda hipersoft, porém, temos (ou melhor, tenho) um problema com o método clone(), pois ele não faz uma cópia do objeto, e sim somente faz uma cópia das referências do objeto a ser clonado.

Eu poderia fazer um implementação mais sofisticada sim como vi vários exemplos na web e clonar todos os objetos, um por um, de todas as referências a que ele é indicado. O ploblema, é que o objeto MultipartParser utiliza um outro objeto, request, como parâmetro, que não consigo clonar.

Alguém poderia me dizer como se faz isso, ou será que é impossível? acho que não… mas que é um bom quebra-cabeça isso é…

Obrigado mesmo assim…

Rafael Dipold

Você já tentou reutilizar o método writeTo, escrevendo para um fluxo em memória para posteriormente colocar no BD?

Já tentei tb, acaba acontecendo a mesma coisa, pois o novo objeto contendo esse fluxo de memória tb é esvaziado para o banco de dados ou para um arquivo, dependendo do que eu faça primeiro, se tornando nulo para uso posterior.
O que eu não tentei é escrever o writeTo para um objeto, no caso o OutputStream, como vc disse, e tentar fazer um clone desse novo objeto.
Vou tentar a noite(unico período que dispunho de tempo) e conto caso tenha sucesso ou insucesso novamente.

Obrigado mais uma vez amigo,

Rafael Dipold