首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >声明InputStream

声明InputStream
EN

Stack Overflow用户
提问于 2012-02-19 05:15:41
回答 1查看 10.2K关注 0票数 2

我正在学习android,学习Java,但对编程并不陌生(使用Eclipse)。我试图在一个方法中执行这样的示例代码:

代码语言:javascript
复制
private void dummy() {
    try {
        URL url = new URL(quakeFeed);
        URLConnection connection;
        connection = url.openConnection();
        HttpURLConnection httpconnection = (HttpURLConnection)connection;
        int responseCode = httpconnection.getResponseCode();
        if(responseCode == HttpURLConnection.HTTP_OK)
            InputStream inp = new BufferedInputStream(httpconnection.getInputStream());
    }
...
}

假设定义了所有其他语法和变量。我得到以下错误:

无法将

InputStream`‘解析为变量。

即使在导入java.io.InputStream;之后,这也是很奇怪的。

如果我在方法之外声明InputStream,即

代码语言:javascript
复制
InputStream inp;
private void dummy() {
    try {
        URL url = new URL(quakeFeed);
        URLConnection connection;
        connection = url.openConnection();
        HttpURLConnection httpconnection = (HttpURLConnection)connection;
        int responseCode = httpconnection.getResponseCode();
        if(responseCode == HttpURLConnection.HTTP_OK)
        // Changed
            inp = new BufferedInputStream(httpconnection.getInputStream());
    }
    ...
}

我很好奇为什么InputStream的本地声明不能被解析,但是全局声明是被解决的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-19 05:32:44

if语句后面跟着一条语句。变量的声明需要一个块来代替。如果允许您在那里声明一个变量,它将没有可见的作用域,也没有用途。

这应该是可行的:

代码语言:javascript
复制
if(responseCode == HttpURLConnection.HTTP_OK)
{ /* Note the brace to start a block! */
  InputStream inp = new BufferedInputStream(httpconnection.getInputStream());
  /* Now use the stream within the block. */
  ...
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9346939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档