2010-10-23 4 views
0
import java.lang.reflect.Method; 

public class ClassLoadingTester 
{ 
    public static void main(String a[]){ 
     try{ 
      ClassLoader loader=new CustomClassLoader(); 
      Class c=loader.loadClass("AddClass"); 
      loader=null; 
      Object o=c.newInstance(); 
      Method m=c.getMethod("getTwoNumbers",new Class[]{String.class,String.class}); 
      m.invoke(o,new Object[]{"2","3"}); 

     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 
} 

Cet extrait de code génère un avertissement lorsque je compile en Java. Je pense que ce qui a trait à cette ligne,Attention: compiler avec -Xlint: décoché pops sur ce code!

Method m=c.getMethod("getTwoNumbers",new Class[]{String.class,String.class}); 

Lorsque je tente de mettre <String> comme ça new Class<String>[]{String.class,String.class}

Il génère une erreur en disant generic array type que je fais mon code dans BlueJ. Mais quand je laisse le code tel quel, cela génère un avertissement irritant ^^.

Je veux juste me débarrasser de cet avertissement que dois-je faire avec cette ligne de code?

Répondre

2

Vous ne pouvez pas créer de tableaux de types génériques comme Class<String>, d'où l'erreur. Vous n'avez donc pas beaucoup d'autre choix que d'ajouter une annotation @SuppressWarnings("unchecked") avant l'instruction pour faire taire l'avertissement. Notez que ces avertissements ont presque toujours une raison, et leur mise en silence de cette manière peut facilement entraîner des exceptions de distribution de classe d'exécution! Alors pensez toujours trois fois avant d'utiliser @SuppressWarnings("unchecked") - utilisez-le uniquement lorsque vous êtes absolument sûr que le plâtre est sûr et qu'il ne peut y avoir de conséquences négatives. Dans ce cas, il me semble sûr de l'utiliser.

-2
int t=10, a=7, b=52, d=97; 

if((t + d)/2 > b && (d - t) % 2 != 0) 
    if(a%2==0 || b%2==0) 
     System.out.println(--t + a); 
    else 
     System.out.println(--t - a); 
else 
    System.out.println(t + ++a); 
+0

Alors que cette réponse peut résoudre le problème de l'OP, il est recommandé de fournir une sorte d'explication quant à la façon dont cette réponse atteint une solution. Le simple fait de poster des réponses uniquement en code peut s'avérer inutile pour le PO et les futurs utilisateurs. S'il vous plaît élaborer. –