2013-06-12 143 views
-1

我可以使用一些新的Java指针。阅读器无法解析为类型?

我正在使用返回“Reader”类型的函数。这里记载:

http://docs.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true

这里是我的代码行:

Reader test = null; 

test = WWIO.openReader("http://google.com"); 

第二行是好的,但第一个放了一个错误的 “读者” 的说法

Reader cannot be resolved to a type 

这是为什么?我有

import java.lang.Object; 

我甚至不认为是必要的?为什么编译器不理解类型?

+7

'import java.lang.Object;'是完全没有意义的。 – christopher

+1

如果你想使用'Reader',那么你应该导入。 –

回答

3

在Eclipse中,按CTRL SHIFTØ可以帮助很多

由于java.io.Reader是包java.io下,你需要导入包。

import java.io.Reader; 

import java.io.*; 

或者,你可以直接在代码中限定它:

java.io.Reader test = null; 

(当你需要使用两个不同的类具有相同的名称时非常有用)

请注意,java.lang包自动可用,所以不需要关闭rt it。

+3

@ZouZou通常它询问你想要哪个导入,如果有多个可能的话。 – arshajii

+1

@arshajii WOOPS,你是对的! –

3

导入使用

import java.io.*; 

编译器不包括未使用的进口,因此使用星号将不会有任何负面影响读者。

更直接明显

import java.io.Reader;

+0

据我所知,这并不影响程序,它更多的是偏好问题。我喜欢使用它,因为它避免了会导致我不得不滚动的代码行,并且它立刻否定了从同一个包导入两次的需要。编辑:这是为了回应有人说直接导入更好。 –

7

虽然

import java.lang.Object; 

实在是没有必要的,你需要包括

import java.io.Reader;  
3

你应该有

import java.io.Reader; 

导入java.lang.Object是完全没有必要的。实际上,从java.lang.*包中导入每个类都是不必要的,因为它们是默认导入的。