2010-11-19 1 views
6
The type Enum is not generic; it cannot be parameterized with arguments <RestClient.RequestMethod> 

J'ai cette erreur dans le code suivant ..Le type Enum n'est pas générique; il ne peut pas être paramétrés avec des arguments <RestClient.RequestMethod>

package ayanoo.utility; 

    import java.io.BufferedReader; 
    import java.io.IOException; 
    import java.io.InputStream; 
    import java.io.InputStreamReader; 
    import java.net.HttpURLConnection; 
    import java.net.URL; 
    import java.util.Vector; 

    import org.apache.http.HttpEntity; 
    import org.apache.http.HttpResponse; 
    import org.apache.http.NameValuePair; 
    import org.apache.http.client.ClientProtocolException; 
    import org.apache.http.client.HttpClient; 
    import org.apache.http.client.entity.UrlEncodedFormEntity; 
    import org.apache.http.client.methods.HttpPost; 
    import org.apache.http.client.methods.HttpUriRequest; 
    import org.apache.http.impl.client.DefaultHttpClient; 
    import org.apache.http.message.BasicNameValuePair; 
    import org.apache.http.protocol.HTTP; 

    import android.util.Log; 

    public class RestClient { 

    public enum RequestMethod 
    { 
    GET, 
    POST 
    } 

     private Vector <NameValuePair> params; 

     private String url; 

     private int responseCode; 
     private String message; 

     private String response; 

     public String getResponse() { 
      return response; 
     } 

     public String getErrorMessage() { 
      return message; 
     } 

     public int getResponseCode() { 
      return responseCode; 
     } 

     public RestClient(String url) 
     { 
      this.url = url; 
      params = new Vector<NameValuePair>(); 
     } 

     public void AddParam(String name, String value) 
     { 
      params.add(new BasicNameValuePair(name, value)); 
     } 

     public void Execute(RequestMethod method) throws IOException 
     { 
      switch(method) { 
       case GET: 
       { 
        //add parameters 
        String combinedParams = ""; 
        if(!params.isEmpty()){ 
         combinedParams += "/"; 
         for(NameValuePair p : params) 
         { 
          //String paramString = p.getName() + "=" + p.getValue(); 
         String paramString = p.getValue(); 
          if(combinedParams.length() > 1) 
          { 
           combinedParams += "&" + paramString; 
          } 
          else 
          { 
           combinedParams += paramString; 
          } 
         } 
        } 

        Log.d("URL See:",url + combinedParams); 
        URL urlObject = new URL(url + combinedParams); 
        //URL urlObject = new URL("http://www.aydeena.com/Services/Search.svc/JSON/SearchByText/1"); 

        executeRequest(urlObject); 
        break; 
       } 
       case POST: 
       { 
        HttpPost request = new HttpPost(url); 

        //add headers 

        if(!params.isEmpty()){ 
         request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); 
        } 

        executeRequest(request, url); 
        break; 
       } 
      } 
     } 

     private void executeRequest(URL urlObject) throws IOException{ 
     HttpURLConnection con = null; 
     con = (HttpURLConnection) urlObject.openConnection(); 
      con.setReadTimeout(10000 /* milliseconds */); 
      con.setConnectTimeout(15000 /* milliseconds */); 
      con.setRequestMethod("GET"); 
      //con.addRequestProperty("Referer", 
       // "http://www.pragprog.com/titles/eband/hello-android"); 
      con.setDoInput(true); 

      // Start the query 
      con.connect(); 
      response = convertStreamToString(con.getInputStream()); 
      Log.d("Response:", response); 
     } 

     private void executeRequest(HttpUriRequest request, String url) 
     { 
      HttpClient client = new DefaultHttpClient(); 
      Log.d("Test URL:", url); 

      HttpResponse httpResponse; 

      try { 
       httpResponse = client.execute(request); 
       responseCode = httpResponse.getStatusLine().getStatusCode(); 
       message = httpResponse.getStatusLine().getReasonPhrase(); 

       HttpEntity entity = httpResponse.getEntity(); 

       if (entity != null) { 

        InputStream instream = entity.getContent(); 
        response = convertStreamToString(instream); 

        // Closing the input stream will trigger connection release 
        instream.close(); 
       } 

      } catch (ClientProtocolException e) { 
       client.getConnectionManager().shutdown(); 
       e.printStackTrace(); 
      } catch (IOException e) { 
       client.getConnectionManager().shutdown(); 
       e.printStackTrace(); 
      } 
     } 

     private static String convertStreamToString(InputStream is) { 

      BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
      StringBuilder sb = new StringBuilder(); 

      String line = null; 
      try { 
       while ((line = reader.readLine()) != null) { 
        sb.append(line + "\n"); 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } finally { 
       try { 
        is.close(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
      return sb.toString(); 
     } 
    } 

quel est le problème ??? !

Répondre

3

Êtes-vous sûr que le compilateur Java est défini sur 1.5 (par défaut pour Android) ou mieux? Si vous utilisez Eclipse, vous pouvez le voir dans les préférences.

+0

c'est réglé à 1,6 – Adham

+0

C'est étrange. Quelle plateforme utilises-tu? Faites une expérience simple en commentant l'enum et en utilisant une fonctionnalité Java 1.5 (une méthode varagrs par exemple: private myMethod (String ... args). – kgiannakakis

+0

non non, c'est résolu .. savez-vous comment j'ai couru un autre projet .. et l'erreur a été résolue – Adham

0

J'ai eu le même problème.

Je n'avais qu'une erreur dans mon projet qui était le

«n'est pas générique.

Après avoir commenté le code Enum j'ai trouvé beaucoup plus d'erreurs. Il semble y avoir une sorte Après avoir réparé les autres erreurs, puis supprimé les commentaires, cela a fonctionné

5

J'ai eu le même problème, et il s'est avéré que c'était parce que la lib standard ne se trouvait pas dans le chemin de la classe Eclipse pour le Allez dans Build Path -> Ajouter des bibliothèques et ajoutez la bibliothèque système JRE

+0

Merci - cela s'est avéré être mon problème aussi. La bibliothèque système JRE a été définie, mais pointant vers un chemin invalide. – Mikaveli

0

Mon projet nommé A était juste fonctionnait très bien jusqu'à aujourd'hui, mais aussi la clôture du projet A et en cours d'exécution d'autres projets B dans l'émulateur im gonna call C, après avoir exécuté correctement la fermeture juste B dans l'explorateur de paquets et rouvrant le Dammaged un (A) l'a fixé, comme un lil 'arrière-plan je dois dire que le jour précédent pendant que je codais les deux projets je jouais avec le <uses-sdk android:minSdkVersion=".. tag dans le manifeste du projet B celui que j'ai utilisé aujourd'hui pour m'aider avec le ACCIDENTEE un A, mais hier quand je compilé B et lance un nouvel émulateur appelé D vient d'être créé pour exécuter une version du système ancien, dès que D a commencé, il a été shutted vers le bas n » mis hors tension (mais la chose avec D est due au désordre que j'ai pour l'ordinateur portable x)), tout cela parce que j'essayais de faire un non supporté par une ancienne méthode API pour travailler xD .. donc probablement le versioning a déclenché cette problème dans mon cas

0

Oui j'ai également vu ce message d'erreur pour un projet qui fonctionnait précédemment bien.

J'ai vérifié la version du compilateur (j'utilise la version 1.6) ainsi que la bibliothèque système (elle est déjà utilisée) en vain.

Enfin, je viens de fermer le projet, puis l'a rouvert, puis le problème s'est résolu. Cela ressemble à un bug Eclipse pour moi.

Questions connexes