Tranformando uma String em um Objeto

Senhores, preciso transformar uma String em um objeto.

Assim:

vou recuperar do request todos os atributos atraves do request.getAttributeNames();

digamos que venha uma lista assim:

“noFuncionario”,(nome)
“dtFuncionario”,(data nascimento)
“sxFuncionario”(sexo)

crio uma String contendo o nome Funcionario.

preciso criar um objeto Funcionario a partir dessa String em tempo de execução.

Tem como fazer isso???

Sávio,

Vc não transforma uma String em um Objeto. Uma String já é um objeto. Neste seu caso vc precisa construir o seu objeto do tipo Funcionário com as propriedades que vc obteve no request.

Vc precisar instanciar um objeto do tipo Funcionario e setar as propriedades nesse objeto:

Funcionario func = new Funcionario();
func.setNome(noFuncionario);
func.setSexo(sxFuncionario);
func.setDataNascimento(dtFuncionario);

Obs.: vc abriu esse tópico em Java Avançado. Deveria ter criado o tópico em Java Básico.

Abraço,

André,

Normalmente agente prepara o objeto setando antes os atributos de acordo com os existentes no request.
a questão é que isso tudo será feito em tempo de execução. Eu tenho que estrair da String que vem do request o tipo, que pode ser qualquer um.
Então eu não posso fazer um Funcionario func = new Funcionario() porque eu não sei qual é o tipo.

é um mecanismo dinâmico de preparação de objeto que será feito na facade para ser passado como parâmetro para os métodos(INSERIR, EXCLUIR, ALTERAR, APAGAR) da DAO.

por isso que eu achei que não é tão básico, pelo menos pra mim né!!!hehehehehehe

OK, Savio. Então reformule a sua pergunta.

Vc tem um form com vários campos com valores String e gostaria que dependendo do que tivesse num campo fosse criado um objeto.

Vc pode criar uma Factory que dependendo da String que for passada vc receba um objeto. Ex.:

String tipoObjeto = "funcionario";

Pessoa p = PessoaFactory.create(tipoObjeto);
p.setNome("José");
public class PessoaFactory 
{
    public static Pessoa create( String tipoPessoa ) 
    {

	if(tipoPessoa.equals("funcionario"){
		
		return new Pessoa();
		
	}
	if(tipoPessoa.equals("cliente"){
		
		return new Cliente();
		
	}	

    }

}

Nesse caso vc teria uma interface Pessoa que tem os métodos comuns aos objetos descendentes de Pessoa.

É isso que vc quer?


<%-- 
    Document   : index
    Created on : 16/10/2012, 18:16:05
    Author     : pirm
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
        <form action="Servlet" method="POST">
            <!--tipos primitivos e String-->
            <input type="text" name="pessoa.bytee" value="1"/><br/>
            <input type="text" name="pessoa.shortt" value="1"/><br/>
            <input type="text" name="pessoa.intt" value="1"/><br/>
            <input type="text" name="pessoa.longg" value="1"/><br/>
            <input type="text" name="pessoa.floatt" value="1"/><br/>
            <input type="text" name="pessoa.doublee" value="1"/><br/>
            <input type="text" name="pessoa.charr" value="x"/><br/>
            <input type="text" name="pessoa.booleann" value="true"/><br/>
            <input type="text" name="pessoa.string" value="oi"/><br/>
            
            <!--vetores -->
            <input type="text" name="pessoa.arrayByte" value="1"/><br/>
            <input type="text" name="pessoa.arrayShort" value="1"/><br/>
            <input type="text" name="pessoa.arrayInt" value="1"/><br/>
            <input type="text" name="pessoa.arrayLong" value="1"/><br/>
            <input type="text" name="pessoa.arrayFloat" value="1"/><br/>
            <input type="text" name="pessoa.arrayDouble" value="1"/><br/>
            <input type="text" name="pessoa.arrayChar" value="x"/><br/>
            <input type="text" name="pessoa.arrayBoolean" value="true"/><br/>
            <input type="text" name="pessoa.arrayString" value="oi"/><br/>
            
            <input type="text" name="pessoa.arrayByte" value="1"/><br/>
            <input type="text" name="pessoa.arrayShort" value="1"/><br/>
            <input type="text" name="pessoa.arrayInt" value="1"/><br/>
            <input type="text" name="pessoa.arrayLong" value="1"/><br/>
            <input type="text" name="pessoa.arrayFloat" value="1"/><br/>
            <input type="text" name="pessoa.arrayDouble" value="1"/><br/>
            <input type="text" name="pessoa.arrayChar" value="x"/><br/>
            <input type="text" name="pessoa.arrayBoolean" value="true"/><br/>
            <input type="text" name="pessoa.arrayString" value="oi"/><br/>
            
            <input type="text" name="pessoa.arrayByte" value="1"/><br/>
            <input type="text" name="pessoa.arrayShort" value="1"/><br/>
            <input type="text" name="pessoa.arrayInt" value="1"/><br/>
            <input type="text" name="pessoa.arrayLong" value="1"/><br/>
            <input type="text" name="pessoa.arrayFloat" value="1"/><br/>
            <input type="text" name="pessoa.arrayDouble" value="1"/><br/>
            <input type="text" name="pessoa.arrayChar" value="x"/><br/>
            <input type="text" name="pessoa.arrayBoolean" value="true"/><br/>
            <input type="text" name="pessoa.arrayString" value="oi"/><br/>
            
            <!-- Utilizando Collections -->
            <input type="text" name="pessoa.list" value="oi"/><br/>
            <input type="text" name="pessoa.set" value="oi1"/><br/>
            <input type="text" name="pessoa.map" value="oi"/><br/>
            
            <input type="text" name="pessoa.list" value="oi"/><br/>
            <input type="text" name="pessoa.set" value="oi2"/><br/>
            <input type="text" name="pessoa.map" value="oi"/><br/>
            
            <input type="text" name="pessoa.list" value="oi"/><br/>
            <input type="text" name="pessoa.set" value="oi3"/><br/>
            <input type="text" name="pessoa.map" value="oi"/><br/>
            
            <!-- Date -->
            <input type="text" name="pessoa.date.date" value="24"/><br/>
            <input type="text" name="pessoa.date.month" value="0"/><br/>
            <input type="text" name="pessoa.date.year" value="112"/><br/>
            
            <!-- javaBean -->
            <input type="text" name="pessoa.pessoa.bytee" value="1"/><br/>
            <input type="text" name="pessoa.pessoa.shortt" value="1"/><br/>
            <input type="text" name="pessoa.pessoa.intt" value="1"/><br/>
            
            <!-- String com multiplos parameters -->
            <input type="text" name="pessoa.string" value="oi"/><br/>
            <input type="text" name="pessoa.string" value="oi"/><br/>
            <input type="text" name="pessoa.string" value="oi"/><br/>
            <input type="text" name="pessoa.string" value="oi"/><br/>
            
            <input type="submit" value="Enviar"/>
        </form>
    </body>
</html>

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.projeto.controller;

import java.io.Serializable;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 *
 * @author pirm
 */
public class Pessoa implements Serializable {

    private byte bytee;
    private short shortt;
    private int intt;
    private long longg;
    private float floatt;
    private double doublee;
    private char charr;
    private boolean booleann;
    private String string;
    private byte[] arrayByte;
    private short[] arrayShort;
    private int[] arrayInt;
    private long[] arrayLong;
    private float[] arrayFloat;
    private double[] arrayDouble;
    private char[] arrayChar;
    private boolean[] arrayBoolean;
    private String[] arrayString;
    private List list;
    private Set set;
    private Map map;
    private Date date;
    private Pessoa pessoa;

    public Pessoa() {
    }

    public byte getBytee() {
        return bytee;
    }

    public void setBytee(byte bytee) {
        this.bytee = bytee;
    }

    public short getShortt() {
        return shortt;
    }

    public void setShortt(short shortt) {
        this.shortt = shortt;
    }

    public int getIntt() {
        return intt;
    }

    public void setIntt(int intt) {
        this.intt = intt;
    }

    public long getLongg() {
        return longg;
    }

    public void setLongg(long longg) {
        this.longg = longg;
    }

    public float getFloatt() {
        return floatt;
    }

    public void setFloatt(float floatt) {
        this.floatt = floatt;
    }

    public double getDoublee() {
        return doublee;
    }

    public void setDoublee(double doublee) {
        this.doublee = doublee;
    }

    public char getCharr() {
        return charr;
    }

    public void setCharr(char charr) {
        this.charr = charr;
    }

    public boolean isBooleann() {
        return booleann;
    }

    public void setBooleann(boolean booleann) {
        this.booleann = booleann;
    }

    public String getString() {
        return string;
    }

    public void setString(String string) {
        this.string = string;
    }

    public byte[] getArrayByte() {
        return arrayByte;
    }

    public void setArrayByte(byte[] arrayByte) {
        this.arrayByte = arrayByte;
    }

    public short[] getArrayShort() {
        return arrayShort;
    }

    public void setArrayShort(short[] arrayShort) {
        this.arrayShort = arrayShort;
    }

    public int[] getArrayInt() {
        return arrayInt;
    }

    public void setArrayInt(int[] arrayInt) {
        this.arrayInt = arrayInt;
    }

    public long[] getArrayLong() {
        return arrayLong;
    }

    public void setArrayLong(long[] arrayLong) {
        this.arrayLong = arrayLong;
    }

    public float[] getArrayFloat() {
        return arrayFloat;
    }

    public void setArrayFloat(float[] arrayFloat) {
        this.arrayFloat = arrayFloat;
    }

    public double[] getArrayDouble() {
        return arrayDouble;
    }

    public void setArrayDouble(double[] arrayDouble) {
        this.arrayDouble = arrayDouble;
    }

    public char[] getArrayChar() {
        return arrayChar;
    }

    public void setArrayChar(char[] arrayChar) {
        this.arrayChar = arrayChar;
    }

    public boolean[] getArrayBoolean() {
        return arrayBoolean;
    }

    public void setArrayBoolean(boolean[] arrayBoolean) {
        this.arrayBoolean = arrayBoolean;
    }

    public String[] getArrayString() {
        return arrayString;
    }

    public void setArrayString(String[] arrayString) {
        this.arrayString = arrayString;
    }

    public List getList() {
        return list;
    }

    public void setList(List list) {
        this.list = list;
    }

    public Set getSet() {
        return set;
    }

    public void setSet(Set set) {
        this.set = set;
    }

    public Map getMap() {
        return map;
    }

    public void setMap(Map map) {
        this.map = map;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public Pessoa getPessoa() {
        return pessoa;
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa = pessoa;
    }
    
    @Override
    public String toString() {
        StringBuilder stringBuilder = new StringBuilder();

        stringBuilder.append("\n----------------------------------------------\n\nPessoa:");
        stringBuilder.append("\nbyte: ").append(bytee);
        stringBuilder.append("\nshort: ").append(shortt);
        stringBuilder.append("\nint: ").append(intt);
        stringBuilder.append("\nlong: ").append(longg);
        stringBuilder.append("\nfloat: ").append(floatt);
        stringBuilder.append("\ndouble: ").append(doublee);
        stringBuilder.append("\nchar: ").append(charr);
        stringBuilder.append("\nboolean: ").append(booleann);
        stringBuilder.append("\nString: ").append(string);
        if (arrayByte != null) {
            stringBuilder.append("\narrayByte: ");
            for (byte e : arrayByte) {
                stringBuilder.append(e).append(",");
            }
        }
        if (arrayShort != null) {
            stringBuilder.append("\narrayShort: ");
            for (short e : arrayShort) {
                stringBuilder.append(e).append(",");
            }
        }
        if (arrayInt != null) {
            stringBuilder.append("\narrayInt: ");
            for (int e : arrayInt) {
                stringBuilder.append(e).append(",");
            }
        }
        if (arrayLong != null) {
            stringBuilder.append("\narrayLong: ");
            for (long e : arrayLong) {
                stringBuilder.append(e).append(",");
            }
        }
        if (arrayFloat != null) {
            stringBuilder.append("\narrayFloat: ");
            for (float e : arrayFloat) {
                stringBuilder.append(e).append(",");
            }
        }
        if (arrayDouble != null) {
            stringBuilder.append("\narrayDouble: ");
            for (double e : arrayDouble) {
                stringBuilder.append(e).append(",");
            }
        }
        if (arrayChar != null) {
            stringBuilder.append("\narrayChar: ");
            for (char e : arrayChar) {
                stringBuilder.append(e).append(",");
            }
        }
        if (arrayBoolean != null) {
            stringBuilder.append("\narrayBoolean: ");
            for (boolean e : arrayBoolean) {
                stringBuilder.append(e).append(",");
            }
        }
        if (arrayString != null) {
            stringBuilder.append("\narrayString: ");
            for (String e : arrayString) {
                stringBuilder.append(e).append(",");
            }
        }
        if (list != null) {
            stringBuilder.append("\nlist: ");
            for (Object o : list) {
                stringBuilder.append(o.toString()).append(",");
            }
        }
        if (set != null) {
            stringBuilder.append("\nset: ");
            Iterator iterator = set.iterator();
            while (iterator.hasNext()) {
                Object o = iterator.next();
                stringBuilder.append(o.toString()).append(",");
            }
        }
        if (map != null) {
            stringBuilder.append("\nmap: ");
            Iterator iterator = map.keySet().iterator();
            while (iterator.hasNext()) {
                Object o = iterator.next();
                stringBuilder.append(o.toString()).append(",");
            }
        }
        if (date != null) {
            stringBuilder.append("\ndate: ").append(date.getDate()).append("/").append((date.getMonth() + 1)).append("/").append((date.getYear() + 1900));
        }
        if (pessoa != null) {
            stringBuilder.append(pessoa);
        }
        stringBuilder.append("\n----------------------------------------------");
        return stringBuilder.toString();
    }
}

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.projeto.controller;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author pirm
 */
@WebServlet(name = "Servlet", urlPatterns = {"/Servlet"})
public class Servlet extends HttpServlet {

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        Pessoa pessoa = (Pessoa) JavaBeanUtils.requestToObject(Pessoa.class, request);
        System.out.println(pessoa);
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.projeto.controller;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;

/**
 *
 * @author pirm
 */
public class JavaBeanUtils {

    public static Object requestToObject(Class classe, HttpServletRequest request) {
        Object object = null;
        try {
            object = classe.getConstructor().newInstance();
        } catch (Exception ex) {
            Logger.getLogger(JavaBeanUtils.class.getName()).log(Level.SEVERE, null, ex);
        }

        Enumeration<String> enumerationString = request.getParameterNames();
        while (enumerationString.hasMoreElements()) {
            String stringParameterName = (String) enumerationString.nextElement();
            StringBuilder stringBuilderAttribute = new StringBuilder();
            for (int i = 0; i < stringParameterName.length(); i++) {
                stringBuilderAttribute.append(stringParameterName.charAt(i));
                if (stringBuilderAttribute.toString().equals(classe.getSimpleName().toLowerCase())) {
                    /*
                     * Quando o nome do stringParameterName for igual ao nome da Class
                     */
                    System.out.println("Classe: " + stringBuilderAttribute);
                    stringBuilderAttribute = new StringBuilder();
                    Object objectReturned = object;
                    for (int j = (i + 2); j < stringParameterName.length(); j++) {
                        char c = stringParameterName.charAt(j);
                        if (c != '.') {
                            stringBuilderAttribute.append(c);
                        } else {
                            /*
                             * É UM OBJETO
                             */
                            System.out.println("MÉTODO: faz(isObject, " + objectReturned.getClass() + ", " + stringBuilderAttribute + ", " + stringParameterName + ", map)");
                            objectReturned = faz(true, objectReturned, stringBuilderAttribute.toString(), stringParameterName, request);
                            stringBuilderAttribute = new StringBuilder();
                        }
                    }
                    /*
                     * É UM ATRIBUTO
                     */
                    System.out.println("MÉTODO: faz(isAttribute, " + objectReturned.getClass() + ", " + stringBuilderAttribute + ", " + stringParameterName + ", map)");
                    faz(false, objectReturned, stringBuilderAttribute.toString(), stringParameterName, request);
                }
            }
        }
        return object;
    }

    private static Object faz(boolean isObject, Object object, String attribute, String parameterName, HttpServletRequest request) {
        if (isObject) {
            /*
             * É UM OBJETO JAVABEAN
             */
            System.out.println("objeto:atributo: " + attribute);
            System.out.println("Checando se o objeto é nulo ... para criar nova instancia !");
            Object objectAttribute = javaBeanGetAttribute(object, attribute);

            if (objectAttribute == null) {
                System.out.println("Objecto é nulo ... criando objeto !");
                Object objectNew = objectAndAttributeToAttributeObject(object, attribute);
                setAttribute(object, attribute, objectNew);
                return objectNew;
            } else {
                System.out.println("Objecto não é nulo ... retornando objeto através do método");
                return javaBeanGetAttribute(object, attribute);
            }
        } else {
            /*
             * É UM ATRIBUTO
             */
            System.out.println("atributo: " + attribute);

            String[] arrayStringAttributeValue = request.getParameterValues(parameterName);

            System.out.println("attribute value: ");
            for (String string : arrayStringAttributeValue) {
                System.out.print("," + string);
            }
            setAttribute(object, attribute, arrayStringAttributeValue);
        }
        return null;
    }

    private static Object javaBeanGetAttribute(Object object, String attribute) {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("get");
        for (int i = 0; i < attribute.length(); i++) {
            if (i == 0) {
                Character c = attribute.charAt(i);
                stringBuilder.append(c.toString().toUpperCase());
            } else {
                stringBuilder.append(attribute.charAt(i));
            }
        }
        try {
            return object.getClass().getDeclaredMethod(stringBuilder.toString()).invoke(object);
        } catch (Exception ex) {
            Logger.getLogger(JavaBeanUtils.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }

    private static void javaBeanSetAttribute(Object object, String attribute, Object value) {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("set");
        for (int i = 0; i < attribute.length(); i++) {
            if (i == 0) {
                Character c = attribute.charAt(i);
                stringBuilder.append(c.toString().toUpperCase());
            } else {
                stringBuilder.append(attribute.charAt(i));
            }
        }
        Method[] arrayMethod = object.getClass().getDeclaredMethods();
        Class classField = null;
        for (Method method : arrayMethod) {
            if (method.getName().equals(stringBuilder.toString())) {
                Class[] arrayClassTypes = method.getParameterTypes();
                classField = arrayClassTypes[0];
            }
        }
        try {
            object.getClass().getDeclaredMethod(stringBuilder.toString(), classField).invoke(object, value);
        } catch (Exception ex) {
            Logger.getLogger(JavaBeanUtils.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private static Object objectAndAttributeToAttributeObject(Object object, String attribute) {
        Field[] arrayField = object.getClass().getDeclaredFields();
        Object objectNew;
        for (Field field : arrayField) {
            if (field.getName().equals(attribute)) {
                try {
                    Class classField = field.getType();

                    if (classField.equals(List.class)) {
                        classField = ArrayList.class;
                    } else if (classField.equals(Map.class)) {
                        classField = HashMap.class;
                    }
                    objectNew = classField.getConstructor().newInstance();
                    System.out.println("new Instance:" + classField.getSimpleName());
                    return objectNew;
                } catch (Exception ex) {
                    Logger.getLogger(JavaBeanUtils.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
        return null;
    }

    private static void setAttribute(Object object, String attribute, Object value) {
        System.out.println("metodo: setAttribute(" + object.getClass().getSimpleName() + ", " + attribute + ", " + value.getClass().getSimpleName() + ")");

        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("set");
        for (int i = 0; i < attribute.length(); i++) {
            if (i == 0) {
                Character c = attribute.charAt(i);
                stringBuilder.append(c.toString().toUpperCase());
            } else {
                stringBuilder.append(attribute.charAt(i));
            }
        }
        System.out.println("metodo a comparar: " + stringBuilder);

        Method[] arrayMethod = object.getClass().getDeclaredMethods();
        for (Method method : arrayMethod) {
            if (method.getName().equals(stringBuilder.toString())) {
                System.out.println("Classe possui o metodo ..." + method.getName());
                Class[] arrayClassTypes = method.getParameterTypes();
                try {
                    Object objectAttribute = javaBeanGetAttribute(object, attribute);
                    String stringClassField = arrayClassTypes[0].getSimpleName();
                    System.out.println("inserindo objeto do tipo ... " + stringClassField + " em " + method.getName());

                    if (stringClassField.equals("byte") || stringClassField.equals("Byte")) {
                        String[] arrayStringValue = (String[]) value;
                        String stringValue = arrayStringValue[0];
                        javaBeanSetAttribute(object, attribute, Byte.parseByte(stringValue));
                    } else if (stringClassField.equals("short") || stringClassField.equals("Short")) {
                        String[] arrayStringValue = (String[]) value;
                        String stringValue = arrayStringValue[0];
                        javaBeanSetAttribute(object, attribute, Short.parseShort(stringValue));
                    } else if (stringClassField.equals("int") || stringClassField.equals("Integer")) {
                        String[] arrayStringValue = (String[]) value;
                        String stringValue = arrayStringValue[0];
                        javaBeanSetAttribute(object, attribute, Integer.parseInt(stringValue));
                    } else if (stringClassField.equals("long") || stringClassField.equals("Long")) {
                        String[] arrayStringValue = (String[]) value;
                        String stringValue = arrayStringValue[0];
                        javaBeanSetAttribute(object, attribute, Long.parseLong(stringValue));
                    } else if (stringClassField.equals("float") || stringClassField.equals("Float")) {
                        String[] arrayStringValue = (String[]) value;
                        String stringValue = arrayStringValue[0];
                        javaBeanSetAttribute(object, attribute, Float.parseFloat(stringValue));
                    } else if (stringClassField.equals("double") || stringClassField.equals("Double")) {
                        String[] arrayStringValue = (String[]) value;
                        String stringValue = arrayStringValue[0];
                        javaBeanSetAttribute(object, attribute, Double.parseDouble(stringValue));
                    } else if (stringClassField.equals("char") || stringClassField.equals("Character")) {
                        String[] arrayStringValue = (String[]) value;
                        String stringValue = arrayStringValue[0];
                        javaBeanSetAttribute(object, attribute, stringValue.charAt(0));
                    } else if (stringClassField.equals("boolean") || stringClassField.equals("Boolean")) {
                        String[] arrayStringValue = (String[]) value;
                        String stringValue = arrayStringValue[0];
                        javaBeanSetAttribute(object, attribute, Boolean.parseBoolean(stringValue));
                    } else if (stringClassField.equals("String")) {
                        String[] arrayStringValue = (String[]) value;
                        String stringValue = arrayStringValue[0];
                        if (arrayStringValue.length > 1) {
                            StringBuilder stringBuilder1 = new StringBuilder();
                            for (int i = 0; i < arrayStringValue.length; i++) {
                                if (i != (arrayStringValue.length - 1)) {
                                    stringBuilder1.append(arrayStringValue[i]).append(",");
                                } else {
                                    stringBuilder1.append(arrayStringValue[i]);
                                }
                            }
                            stringValue = stringBuilder1.toString();
                        }
                        javaBeanSetAttribute(object, attribute, stringValue);
                    } else if (stringClassField.equals("byte[]") || stringClassField.equals("Byte[]")) {
                        String[] arrayString = (String[]) value;
                        byte[] array = new byte[arrayString.length];
                        for (int i = 0; i < arrayString.length; i++) {
                            array[i] = Byte.parseByte(arrayString[i]);
                        }
                        javaBeanSetAttribute(object, attribute, array);
                    } else if (stringClassField.equals("short[]") || stringClassField.equals("Short[]")) {
                        String[] arrayString = (String[]) value;
                        short[] array = new short[arrayString.length];
                        for (int i = 0; i < arrayString.length; i++) {
                            array[i] = Short.parseShort(arrayString[i]);
                        }
                        javaBeanSetAttribute(object, attribute, array);
                    } else if (stringClassField.equals("int[]") || stringClassField.equals("Integer[]")) {
                        String[] arrayString = (String[]) value;
                        int[] array = new int[arrayString.length];
                        for (int i = 0; i < arrayString.length; i++) {
                            array[i] = Integer.parseInt(arrayString[i]);
                        }
                        javaBeanSetAttribute(object, attribute, array);
                    } else if (stringClassField.equals("long[]") || stringClassField.equals("Long[]")) {
                        String[] arrayString = (String[]) value;
                        long[] array = new long[arrayString.length];
                        for (int i = 0; i < arrayString.length; i++) {
                            array[i] = Long.parseLong(arrayString[i]);
                        }
                        javaBeanSetAttribute(object, attribute, array);
                    } else if (stringClassField.equals("float[]") || stringClassField.equals("Float[]")) {
                        String[] arrayString = (String[]) value;
                        float[] array = new float[arrayString.length];
                        for (int i = 0; i < arrayString.length; i++) {
                            array[i] = Float.parseFloat(arrayString[i]);
                        }
                        javaBeanSetAttribute(object, attribute, array);
                    } else if (stringClassField.equals("double[]") || stringClassField.equals("Double[]")) {
                        String[] arrayString = (String[]) value;
                        double[] array = new double[arrayString.length];
                        for (int i = 0; i < arrayString.length; i++) {
                            array[i] = Double.parseDouble(arrayString[i]);
                        }
                        javaBeanSetAttribute(object, attribute, array);
                    } else if (stringClassField.equals("char[]") || stringClassField.equals("Character[]")) {
                        String[] arrayString = (String[]) value;
                        char[] array = new char[arrayString.length];
                        for (int i = 0; i < arrayString.length; i++) {
                            array[i] = arrayString[i].charAt(0);
                        }
                        javaBeanSetAttribute(object, attribute, array);
                    } else if (stringClassField.equals("boolean[]") || stringClassField.equals("Boolean[]")) {
                        String[] arrayString = (String[]) value;
                        boolean[] array = new boolean[arrayString.length];
                        for (int i = 0; i < arrayString.length; i++) {
                            array[i] = Boolean.parseBoolean(arrayString[i]);
                        }
                        javaBeanSetAttribute(object, attribute, array);
                    } else if (stringClassField.equals("String[]")) {
                        javaBeanSetAttribute(object, attribute, value);
                    } else if (stringClassField.equals("List") || stringClassField.equals("ArrayList")) {
                        List list = new ArrayList();
                        String[] arrayString = (String[]) value;
                        list.addAll(Arrays.asList(arrayString));
                        javaBeanSetAttribute(object, attribute, list);
                    } else if (stringClassField.equals("Set") || stringClassField.equals("HashSet")) {
                        Set set = new HashSet();
                        String[] arrayString = (String[]) value;
                        for(String string : arrayString){
                            set.add(string);
                        }
                        javaBeanSetAttribute(object, attribute, set);
                    } else if (stringClassField.equals("Map") || stringClassField.equals("HashMap")) {
                        Map map = new HashMap();
                        String[] arrayString = (String[]) value;
                        for (int i = 0; i < arrayString.length; i++) {
                            map.put(i, arrayString[i]);
                        }
                        javaBeanSetAttribute(object, attribute, map);
                    } else {
                        javaBeanSetAttribute(object, attribute, value);
                    }
                } catch (Exception ex) {
                    Logger.getLogger(JavaBeanUtils.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
    }
}