質問
私は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
}
したがって、「ユーザーu = new user();」というコメントをコメントした場合ブレークポイントに行きますが、上記のように保持すると、実行が停止します。
サイドノートとして、私は両方のファイルを同じフォルダーに保持しているので、Eclipseがファイルをインポートしないように、これは正しいですか、それともインポートする必要がありますか?
編集:
しばらくして、ファイルを手動でインポートしなければならないことがわかりましたが、私はそれを試したと思いましたが、どうやらしなかったようです。
解決
デニス、あなたが投稿したコードがあなたが実行している正確なコードである場合、これは意味がありません - 「ユーザーu = new user();」コンストラクターが空であるため、コールは問題なく新しいユーザーオブジェクトを返します。
それを自分自身に示すには、コンストラクターを次のように変更します。
public User() {
System.out.println("I'm inside the User constructor!");
}
そして、some_function()関数をもう一度呼び出します。そのラインがコンソールに印刷されているのを見るはずです。
あなたが報告しているものと表示しているコードを考えると、some_function()を含むクラスはユーザークラスではなく「表示」されていないと思います。作成したクラスではなく、他のユーザークラスをインポートしています。同じパッケージにあるsome_function()を含むユーザークラスとクラスの2つのクラスはありますか?そうでない場合、some_function() - を含むクラスの上部にあるインポートステートメントは、ユーザークラスのインポートを処理することですか?
他のヒント
確かに、ユーザー()コンストラクターに無限のループがありませんか?
たとえば、コンストラクターにコードを入れます
id = 99;
そこにブレークポイントを設定します。
Eclipseにインポートすることについてあなたが何を意味するのかわかりません - 私はすべてのコードをEclipseに持っています - しかし、あなたのアプリケーションがユーザークラスを正しく見ていないのではないかと思います。たぶん、あなたもコンピレーションエラーを取得しています。 Eclipseでパッケージとクラスを作成し、ディレクトリを整理してください。
ユーザーのインポートを含むアプリクラス全体を表示します。
ブレークポイントをつけてください User u = new User();
そして、コンストラクターに足を踏み入れて、それが何をしているのかを確認します。