-4

チュートリアルを確認しましたが、これは機能するはずですが、機能しません。あるクラスに別のクラスで使用したい文字列がありますが、使用すると null 例外が発生します。

@ViewScoped
@ManagedBean
public class FileDirectoryViewer {
FileUploadController destination = new FileUploadController();

        NewDestination = destination + username + "/";

そして、私は目的地を取得しようとしています

@ViewScoped
@ManagedBean(name = "fileUploadController")
public class FileUploadController {

    public String destination  = "D:/Documents/NetBeansProjects/printing~subversion/fileupload/Uploaded/"; // main location for uploads

FileUploadControllerからへの目的地を取得するにはどうすればよいFileDirectoryViewerですか?

4

1 に答える 1

0

destinationフィールドにFileUploadControllerはアクセス修飾子がないため、デフォルトではパッケージ プライベートです。

これら 2 つのクラスが同じパッケージ内にある場合は、クラスのインスタンスを作成し、インスタンスで.演算子を使用してプロパティにアクセスすることでアクセスできます。

FileUploadController controller = new FileUploadController();
NewDestination = controller.destination + username + "/";

そうでない場合は、を返すpublic String getDestination()メソッドを実装する必要があります。演算子:を使用して、このメソッドも呼び出す必要があります。FileUploadControllerdestination.controller.getDestination()

投稿したコードにはいくつかの問題があることを考慮してください。

  • FileDirectoryViewerクラスのメソッドの外側にコードを配置しています。クラスでは、メンバー (フィールドやメソッドなど) のみを定義できます。一般的に言えば、動作コードはメソッド宣言の内部に入ります。

  • パス プロパティにハードコードされた変数を使用することは、悪い習慣と見なされる可能性があります。まずは調べてみてくださいjava.util.Properties。とにかく、コードの見た目では、destinationフィールドがインスタンス フィールドであることはstatic意味がありませんinterface

  • Java の命名規則では、変数名をキャメル ケースにし、小文字で始めることをお勧めします。

于 2013-02-12T17:05:26.813 に答える