0

Java SE で NetBeans 6.9.1 を使用しています。

私は、src と tests の 2 つのフォルダーにコードを含む Autocorrect というプロジェクトに取り組んでいます。プライベート フィールドとメソッドにアクセスするために、テスト ファイルをソース ファイルと同じパッケージに入れようとしています。

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" 

インポートすると、次の 2 つのエラーが返されました。

- cannot find symbol: ...[info]... 

- Import From The Same Package 

そのため、TrieTest は SQTrie と同じ名前のパッケージに含まれていることを認識しますが、NetBeans は 2 つのパッケージを同一視しません。

この問題の原因について誰か考えがありますか? または、NetBeans が複数のフォルダにまたがるパッケージを処理する方法について、さらに詳しい情報はありますか?

4

1 に答える 1

0

同じパッケージへのメソッド アクセスを制限するには、パッケージのプライベート アクセス修飾子を使用します。これは、メソッドの前に何も 配置しないことを意味します (非公開/公開/保護なし)。Private ははるかに強力で、使用をクラス自体に制限します。このアクセス修飾子は、単体テストでもよく使用され、テスト対象のメソッドが過剰に公開されるのを防ぎます。

于 2013-02-25T16:16:57.340 に答える