为什么我不能把我的功能放在另一个班级?

时间:2010-02-16 00:23:01

标签: java

我在“com.example.hello”工作区内创建了一个名为“Tools”的新类。

Tools.java:

public class Tools {
    public static String getSource (String theurl) {
        URL u;
        InputStream is = null;
        DataInputStream dis;
        String s;
        String ss = "";
        try {
           u = new URL(theurl);
           is = u.openStream();         // throws an IOException
           dis = new DataInputStream(new BufferedInputStream(is));
           while ((s = dis.readLine()) != null) {
              ss = ss +  s;
           }
        } catch (MalformedURLException mue) {
        } catch (IOException ioe) {
        } finally {
           try {
              is.close();
              return ss;
           } catch (IOException ioe) {
           }
        } 
        return ss;
     }         
}

从那个确切的命名空间(com.example.hello)中,有一个.java文件......我想使用getSource。

我尝试了import com.example.hello.Tools.*

但出于某种原因,我不能使用getSource?

我只是希望能够从同一文件夹中的其他类调用“getSource”。

3 个答案:

答案 0 :(得分:8)

你想:

import static com.example.hello.Tools.*;

在不编写getSource()的情况下使用Tools.getSource()。当然,如果你想写Tools.getSource(),只需使用标准import

import com.example.hello.Tools;

答案 1 :(得分:4)

import static com.example.hello.Tools.*;

这是指向static import的指针。

编辑:您也可以拨打Tools.getSource()。由于Tools位于同一个包中,因此您无需导入它。

答案 2 :(得分:4)

您需要添加以下内容吗? (问,因为我在你的例子中没有看到它。)

package com.example.hello;

将文件放在正确的文件夹结构中是不够的;你必须在文件的顶部提供一个包装声明。