2016-08-26 1 views
0

In org.aspectj.lang.JoinPoint können wir diese Object[] args = joinPoint.getArgs();API Design und impl: eine bestimmte Art empfangen und das Rück Instanz von einem Objekt Array

Jetzt tun, ich möchte eine API implementieren, die dies erreichen können:

// This method receive a variable which can help me know which type of instance he want 
public String getInstanceStr(JoinPoint joinPoint, ??customerType??/*?how to design here?*/){ 
    String requestStr = null; 
    Object[] os = joinPoint.getArgs(); 
    for (int i = 0; i < os.length; i++) { 
     /*?How to determine the type here?*/ 
     if (os[i] instanceof ??cusomerType??) { 
      requestStr = os[i].toString(); 
     } 
    } 
    return requestStr; 
} 

Dann kann der Aufrufer dies tun:

In diesem Fall kann Client bestimmen, was von Args abgerufen werden soll.

Ich habe versucht Class und <T>, wie Sie sehen können, habe ich versagt.

Bitte sagen Sie mir, ob oder wie ich das tun kann?

Antwort

0

Dies sollte funktionieren:

// This method receive a variable which can help me know which type of instance he want 
    public String getInstanceStr(JoinPoint joinPoint, Class<? extends Object> clazz){ 
     String requestStr = null; 
     Object[] os = joinPoint.getArgs(); 
     for (int i = 0; i < os.length; i++) { 
      /*?How to determine the type here?*/ 
      if(clazz.isInstance(os[i])){ 
       requestStr = os[i].toString(); 
      } 

     } 
     return requestStr; 
    } 
Verwandte Themen