我正在学习android,学习Java,但对编程并不陌生(使用Eclipse)。我试图在一个方法中执行这样的示例代码:
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,即
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的本地声明不能被解析,但是全局声明是被解决的。
发布于 2012-02-19 05:32:44
if语句后面跟着一条语句。变量的声明需要一个块来代替。如果允许您在那里声明一个变量,它将没有可见的作用域,也没有用途。
这应该是可行的:
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. */
...
}https://stackoverflow.com/questions/9346939
复制相似问题