同一包中的代码无法识别

时间:2013-02-25 16:11:31

标签: java netbeans package

我正在使用带有Java SE的NetBeans 6.9.1。

我正在开发一个名为Autocorrect的项目,代码包含2个文件夹,src和测试。为了访问私有字段和方法,我试图将我的测试文件放在与源文件相同的包中:

edu.brown.cs32.dtadams.<package> 

示例:

package edu.brown.cs32.dtadams.trie; 

import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 
import static org.junit.Assert.*; 
import java.util.List; 

/* A generic class for testing methods in the "edu.brown.cs32.dtadams.trie" package 
 * 
 * @author Dominic Adams 
 * @version 1.0 2/13/13 
 */ 
public class TrieTest { 

...[TESTS]... 
} 

我被告知,即使TrieTest位于与其他软件包不同的根文件夹中,NetBeans也应该将其识别为同一个文件夹。但是,TrieTest似乎无法识别其自身包中的任何文件。当我添加

"import edu.brown.cs32.dtadams.SQTrie" 

进口,我收回了这两个错误:

- cannot find symbol: ...[info]... 

- Import From The Same Package 

因此,TrieTest认识到它位于与SQTrie同名的包中,但NetBeans并不等同于这两个包。

有没有人知道可能导致此问题的原因?或者有关NetBeans如何跨多个文件夹处理包的更多信息?

1 个答案:

答案 0 :(得分:0)

要限制对同一个包的方法访问,请使用package private access modifier ,这意味着在您的方法前放置 nothing (没有私人/公共/受保护)。私人性强得多,限制了对班级本身的使用。 此访问修饰符也经常用于单元测试,以避免过度暴露测试方法。