0

我正在使用带有 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 如何跨多个文件夹处理包的更多信息?

4

1 回答 1

0

要限制对同一包的方法访问,请使用包私有访问修饰符 ,这意味着在您的方法前面不放置任何内容(没有私有/公共/受保护)。Private 更强大,并将使用限制在类本身。此访问修饰符也经常用于单元测试,以避免过度暴露测试方法。

于 2013-02-25T16:16:57.340 回答