无法识别同一包中的代码



我使用NetBeans 6.9.1与Java SE。

我正在做一个名为自动更正的项目,代码在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如何跨多个文件夹处理包的更多信息?

要限制对同一个包的方法访问,请使用包私有访问修饰符这意味着在方法前面不放任何内容(没有private/public/protected)。Private要强大得多,并且限制了对类本身的使用。此访问修饰符也经常用于单元测试,以避免过度暴露被测试的方法。

相关内容

  • 没有找到相关文章

最新更新