0

私はJavaを初めて使用し、値オブジェクトを作成する必要があります(Javaではマップオブジェクトと呼ばれる場合があります)が、コードが機能していないようです。値オブジェクトは次のとおりです。

package ....;

public class User {
    private int id;    
    private int uid;    
    private String name;

    public User()
    {
        // do something here
    }
}

そして私はこのような新しい値オブジェクトを割り当てます:

public boolean some_function() 
{               
    User u = new User();

    return true; // got a breakpoint here
}

したがって、「User u = new User();」とコメントアウトすると、ブレークポイントに移動しますが、上記のように保持すると、実行が停止します。

ちなみに、私は両方のファイルを同じフォルダーに保持しているので、Eclipseはファイルをインポートしません。これは正しいですか、それともインポートする必要がありますか?

編集:

しばらくして、ファイルを手動でインポートする必要があることに気づき、それを試したと思いましたが、どうやらしませんでした。

4

4 に答える 4

1

デニス、投稿したコードが実行中のコードとまったく同じである場合、これは意味がありません-「User u = new User();」コンストラクターが空であるため、 call は問題なく新しい User オブジェクトを返します。

それを自分で実証するには、コンストラクターを次のように変更します。

public User() {
  System.out.println("I'm inside the User constructor!");
}

some_function() 関数を再度呼び出します。その行がコンソールに出力されるはずです。

あなたが報告しているものとあなたが示しているコードを考えると、 some_function() を含むクラスが User クラスを「認識」していないと思われます.作成したものではなく、他の User クラスをインポートしています. 2 つのクラス (User クラスと some_function() を含むクラス) は同じパッケージに含まれていますか? そうでない場合、some_function() を含むクラスの先頭にあるどの import ステートメントが User クラスのインポートを処理していますか?

于 2009-11-23T15:42:06.073 に答える
0

User() コンストラクターに無限ループがありませんか?

于 2009-11-23T15:31:24.003 に答える
0

たとえば、いくつかのコードをコンストラクターに入れます

id = 99;

そこにブレークポイントを設定します。

Eclipse へのインポートの意味がわかりません。コードはすべて Eclipse にありますが、アプリケーションが User クラスを正しく認識していないと思われます。コンパイル エラーが発生している可能性もあります。Eclipse でパッケージとクラスを作成し、ディレクトリを整理します。

User のインポートを含む app クラス全体を表示します。

于 2009-11-23T15:41:34.513 に答える
0

ブレークポイントを設定しUser u = new User();、コンストラクターにステップインして、それが何をしているかを確認します。

于 2009-11-23T15:41:46.353 に答える