Enum 类型不是通用的;它不能使用参数进行参数化

发布于 2024-10-03 04:57:19 字数 6029 浏览 1 评论 0原文

The type Enum is not generic; it cannot be parameterized with 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();
        }
    }

有什么问题??? !

The type Enum is not generic; it cannot be parameterized with arguments <RestClient.RequestMethod>

I've this error in the following code ..

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();
        }
    }

what's the problem ??? !

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

┊风居住的梦幻卍 2024-10-10 04:57:19

我也遇到了同样的问题,结果发现是因为标准lib不在项目的eclipse类路径中。只需进入构建路径 ->添加库并添加 JRE 系统库

I had the same problem, and it turned out that it was because the standard lib was not in the eclipse class path for the project. Just go into Build Path -> Add Libraries and add the JRE System Library

冷了相思 2024-10-10 04:57:19

您确定 Java 编译器设置为 1.5(android 默认)或更好吗?如果您使用 Eclipse,您可以从首选项中看到这一点。

Are you sure the Java compiler is set to 1.5 (default for android) or better? If you are using Eclipse you can see that from the preferences.

笑,眼淚并存 2024-10-10 04:57:19

我也有同样的问题。

我的项目中只有一个错误,即“不是通用的错误”。

在注释掉枚举代码后,我发现了更多错误。

似乎存在某种阻碍。只有在修复其他错误和然后删除评论就可以了。

I had the same problem.

I only had one error in my project which was the "is not generic one'.

After I commented out the Enum code I found a lot more errors.

There seemed to be some kind of hold-up. Only after fixing the other errors and then removing the comments did it work.

与往事干杯 2024-10-10 04:57:19

是的,我也看到了之前运行良好的项目的此错误消息。

我检查了编译器版本(我使用的是1.6)以及系统库(它已经在使用),但无济于事。

最后我关闭了项目,然后重新打开它,然后问题就消失了。对我来说听起来像是 Eclipse 的错误。

Yes I also saw this error message for a project that was previously working fine.

I checked the compiler version (I am using 1.6) as well as the system library (it is already being used) to no avail.

Finally I just closed the project and then re-opened it, and then the problem went away. Sounds like an Eclipse bug to me.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文