cannot find symbol?
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<T_Ctxt>{
public boolean verifyCtxt(String[] aSArs, Class<? extends T_Ctxt> TpArgK);
// public T_Ctxt getCtxtDTO();
public Object getCtxtDTO();
}
// __
class DTO_T_Ctxt12<T_Ctxt> implements verifiableCLIContext12<T_Ctxt> {
// 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<? extends T_Ctxt> 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<IADObj> DTO_IADObj = new DTO_T_Ctxt12<IADObj>();
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<Ho3K> DTO_Ho3 = new DTO_T_Ctxt12<Ho3K>();
DTO_Ho3.verifyCtxt(aSAr, Ho3.getClass());
RObj = DTO_Ho3.getCtxtDTO();
System.err.println("// __ |" + RObj.getClass() + "|" + RObj + "|");
// __
}
}
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~