未识别相同包中的代码
问题描述:
我在Java SE中使用NetBeans 6.9.1。未识别相同包中的代码
我正在使用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如何在多个文件夹中处理包的更多信息?
答
要限制对同一封装方法访问使用package private access modifier ,这意味着把没有在方法的前面(没有私人/公共/保护)。私人更强大,限制了课程本身的使用。 此访问修饰符也经常用于单元测试,以避免过度暴露测试方法。
_“为了访问私有字段和方法”_私有字段和方法只能**在同一个类中访问。你的意思是“保护?”没有附图,顺便说一句。 – 2013-02-25 16:13:48
您在示例中使用了两个不同的包('edu.brown.cs32.dtadams'和'edu.brown.cs32.dtadams.trie')。此外,你似乎至少要问两个不同的问题。你问如何访问同一个包中的类之间的私有变量?或者你问为什么你的进口无法解决? – Perception 2013-02-25 16:17:51