我正在使用带有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如何跨多个文件夹处理包的更多信息?
答案 0 :(得分:0)
要限制对同一个包的方法访问,请使用package private access modifier ,这意味着在您的方法前放置 nothing (没有私人/公共/受保护)。私人性强得多,限制了对班级本身的使用。 此访问修饰符也经常用于单元测试,以避免过度暴露测试方法。