Path: csiph.com!usenet.pasdenom.info!aioe.org!.POSTED!not-for-mail From: qwertmonkey@syberianoutpost.ru Newsgroups: comp.lang.java.programmer Subject: cannot find symbol? Date: Sat, 4 May 2013 20:58:38 +0000 (UTC) Organization: Aioe.org NNTP Server Lines: 132 Message-ID: NNTP-Posting-Host: jcJFTAhAdFLWfAXONlzC5w.user.speranza.aioe.org X-Complaints-To: abuse@aioe.org X-Notice: Filtered by postfilter v. 0.8.2 X-Newsreader: NetComponents Xref: csiph.com comp.lang.java.programmer:23826 this is what I had in mind. The thing is that I wanted to get a typed object ~ public T_Ctxt getCtxtDTO(); ~ instead of a flat one ~ public Object getCtxtDTO(); ~ and even though I haven't had the chance/need to learn about generics and how they relate to reflection I have the (probably wrong) hunch that there should be a way to do that ~ lbrtchx ~ // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ import java.util.Date; import java.io.IOException; import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; // __ class IADObj{ private double d; private String aS; private Date Dt; // __ IADObj(){} // __ public void setCtxt(String[] aSAr){ this.d = (new Double(aSAr[0])).doubleValue(); this.aS = aSAr[1]; this.Dt = new Date((new Long(aSAr[2])).longValue()); } // __ public String toString(){ return(" d: |" + d + "|, aS: |" + aS + "|, Dt: |" + Dt + "|"); } } // __ class Ho3K{ private String aS; Ho3K(){} public void setCtxt(String[] aSAr){ this.aS = aSAr[0]; } public String toString(){ return(" aS: |" + aS + "|"); } } // __ interface verifiableCLIContext12{ public boolean verifyCtxt(String[] aSArs, Class TpArgK); // public T_Ctxt getCtxtDTO(); public Object getCtxtDTO(); } // __ class DTO_T_Ctxt12 implements verifiableCLIContext12 { // private T_Ctxt tCtxt; // operating context private Object OCtxtObj; // operating context private final Class[] KParams = new Class[]{String[].class}; // __ DTO_T_Ctxt12(){ System.err.println("// __ object created: |" + getTimeStamp() + "|"); } // __ private String getTimeStamp(){ return((new Date()).toString()); } // __ public boolean verifyCtxt(String[] aSAr, Class TpArgK){ int iArSz= Integer.MIN_VALUE; boolean Is = ((aSAr != null) && ((iArSz = aSAr.length) > 0)); if(Is){ for(int i = 0; (i < iArSz); ++i){ System.err.println("// __ aSAr[" + i + "]: |" + aSAr[i] + "|"); } // __ try{ OCtxtObj = (T_Ctxt)TpArgK.newInstance(); Method VerMthd = (OCtxtObj.getClass()).getDeclaredMethod("setCtxt", KParams); VerMthd.invoke(OCtxtObj, new Object[]{aSAr}); System.err.println("// __ |" + this.getClass() + "." + Thread.currentThread().getStackTrace()[1].getMethodName() + "|" + OCtxtObj + "|"); }catch(InstantiationException InstX){ InstX.printStackTrace(System.err); } catch(IllegalAccessException IlglAxX){ IlglAxX.printStackTrace(System.err); } catch(NoSuchMethodException NMthddX){ NMthddX.printStackTrace(System.err); } catch(InvocationTargetException InvkTrgtX){ InvkTrgtX.printStackTrace(System.err); } }// (Is) // __ return(Is); } // __ public Object getCtxtDTO(){ System.err.println("// __ |" + this.getClass() + "." + Thread.currentThread().getStackTrace()[1].getMethodName() + "|"); return(OCtxtObj); } } // __ public class DTO_T_Ctxt12Test{ public static void main(String[] args) { String[] aSAr; Object RObj; // __ System.err.println("// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "); IADObj IAD = new IADObj(); aSAr = new String[]{"37", "abc", (new Long(System.currentTimeMillis())).toString()}; DTO_T_Ctxt12 DTO_IADObj = new DTO_T_Ctxt12(); DTO_IADObj.verifyCtxt(aSAr, IAD.getClass()); RObj = DTO_IADObj.getCtxtDTO(); System.err.println("// __ |" + RObj.getClass() + "|" + RObj + "|"); // __ System.err.println("// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "); Ho3K Ho3 = new Ho3K(); aSAr = new String[]{"Ho, ho, ho!"}; DTO_T_Ctxt12 DTO_Ho3 = new DTO_T_Ctxt12(); DTO_Ho3.verifyCtxt(aSAr, Ho3.getClass()); RObj = DTO_Ho3.getCtxtDTO(); System.err.println("// __ |" + RObj.getClass() + "|" + RObj + "|"); // __ } } // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~