2013-02-25 80 views
0

我在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如何在多個文件夾中處理包的更多信息?

+0

_「爲了訪問私有字段和方法」_私有字段和方法只能**在同一個類中訪問。你的意思是「保護?」沒有附圖,順便說一句。 – 2013-02-25 16:13:48

+1

您在示例中使用了兩個不同的包('edu.brown.cs32.dtadams'和'edu.brown.cs32.dtadams.trie')。此外,你似乎至少要問兩個不同的問題。你問如何訪問同一個包中的類之間的私有變量?或者你問爲什麼你的進口無法解決? – Perception 2013-02-25 16:17:51

回答

0

要限制對同一封裝方法訪問使用package private access modifier ,這意味着把沒有在方法的前面(沒有私人/公共/保護)。私人更強大,限制了課程本身的使用。 此訪問修飾符也經常用於單元測試,以避免過度暴露測試方法。