繁体   English   中英

如何从私有静态类访问方法

[英]how to access a method from private static class

即时通讯试图将所有停用词放在一个哈希集上,我不想一个接一个地添加它,所以即时通讯试图放入一个txt文件并让我的扫描仪对其进行扫描。 问题是我认为我的代码未到达扫描仪,这是我的代码:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;

public class StopWords  {

    public static final Set<String> stopWords = new HashSet<String>();   

    private static class scan {

        public scan()throws IOException {
            Scanner s = null;

            try{
                s = new Scanner(new BufferedReader(new FileReader("stopwords.txt")));

                while (s.hasNext()) {
                    //System.out.println(s.next());
                    stopWords.add(s.next());
                }
            }finally{
                if (s != null) {
                    s.close();
                }
            }        
        }
    }
}

我在其他课程上运行我的主语言,而我只是在调用该课程。 提前致谢

在封闭类中为其包装。 就像是:

public void doScan() {
    try {
         scan.scan();
    catch (IOException e) {};
}

在StopWords类中。

这样,您可以在StopWords实例上调用doScan()。 您也可以使其静态。

我同意您应该遵循Java语言的命名对流( wikipedia.org )。

只想添加一些您可能会考虑的技巧:

  • 首先-您可以将停用词存储在属性文件中,然后使用java.util.Properties.load提取数据。
  • 其次-您可以将停用词文件放在类路径中,然后将停用词文件与其余代码捆绑在一个jar中以进行交付。

您结束时会出现以下内容:

final Properties stopProps = new java.util.Properties();
stopProps.load( new InputStreamReader( this.class.getClassLoader().getResourceAsStream( "mycode/stopWords.properties", "UTF-8" ) );

...

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM