public static class det {
public static class prod {
public static String nItem;
public static String InfAdProd ;
public static String cProd;
public static String cEAN;
public static String xProd;
public static String NCM;
public static String EXTIPI;
public static String Gênero;
public static String CFOP;
public static String uCom;
public static String qCom;
public static String vUnCom;
public static String vProd;
public static String cEANTrib;
public static String uTrib;
public static String indTot;
public static String qTrib;
public static String vUnTrib;
public static String vFrete;
public static String vSeg;
public static String vDesc ;
public static String xPed;
public static String nItemPed;
public static String vOutro;
public static class di {
public static String NDI;
public static String DDI;
public static String XLocDesemb;
public static String UFDesemb;
public static String DDesemb;
public static String CExportador ;
}
Preciso que ela se repita varias vezes e receba conteudos diversos para cada item, portanto fiz o seguinte :
public static KNFE.det det[] = new KNFE.det[100];
Supõe-se que cada um dos 100 elementos desta matriz seja igual em estrutura ao elemento de origem, o que pude constatar quando uso o recurso de autopreenchimento do netbeans. Os elementos estão lá, bonitinhos e prontos para serem usados.
No entanto....
Quando tento colocar valores neles usando reflection a coisa degringola.
public static void alocar(String meto) throws ClassNotFoundException, NoSuchFieldException, IllegalArgumentException{
String metodo = "";
String cla = "";
try {
Field f1 = null;
Integer ti = meto.indexOf("|");
Integer vo = meto.indexOf("=");
cla = meto.substring(0,ti);
cla = cla.substring(0,cla.length()-1);
metodo = meto.substring(ti+1,vo).trim();
String valor = meto.substring(vo+1,meto.length()).trim();
if (!meto.contains("det")){
cla = "jpegasus.KNFE$" + cla;
}
Class c;
c = Class.forName(cla);
f1 = c.getDeclaredField(metodo);
f1.setAccessible(true);
f1.set(c,valor);
} catch (Exception ex){
funcoes.m("Linha 250 de captura/alocar indica cla = " + cla + " e metodo = " + metodo + " erro " + ex);
}
}
Dario