
No.2ベストアンサー
- 回答日時:
浅学なため、TestDataというクラス名と「セッション内に格納」という表現だけからどうしてHttpSessionが出てくるのか分かりませんが...
Javaでは、明示的な操作(C++のdeleteのような)によってインスタンスを削除することはできません。そのインスタンスがどこからも参照されなくなったらGCで消えます。もう要らない(消えてほしい)インスタンスを参照している変数やフィールドにはnullを代入することで参照をなくします。
testData = null;
> NULLのままだと不具合があるため、NULLの場合は、インスタンスそのものを削除してしまいたい
何がNULLだとどのように不都合なのかを説明してもらえると、別の回答がつくかもしれません。
Weblogic環境でWorkshopを使っていて開発を行ってます。
testData内の値をJSP上のタグ(WebLogic特有のもの?)を使って、入力フィールドのデフォルト値として設定しています。
その際に、インスタンスが存在しない場合は自動的に作られるので問題ないのですが、そのインスタンスがNULLだとエラーが発生してしまうようです。
・JSPの中でNULLかどうかチェックしてから処理をする
・そのインスタンスの各項目に、NULLでなく""を入れる
などを行えば回避できるのですが、ちょっと手間ということ、DELETEのようなことが出来るのでは…?? と思い、確認させていただきました。
出来ないとのこと、承知いたしました。
ご回答ありがとうございました。
No.3
- 回答日時:
> そのインスタンスがNULLだとエラーが発生してしまうようです。
「インスタンス」という言葉で表しているものが違うんだと思うのですが、インスタンスはクラスを実体化したものなので、インスタンスがnullになることはありません。変数とか、インスタンスの中のフィールドの値がnullになることはありますけど。
また、大文字のNULLにこだわっておられるところがJavaっぽくないなと思います。WebLogicでは大文字のNULLに特別な意味があるのでしょうか?
> インスタンスが存在しない場合は自動的に作られるので問題ないのですが、
問題が発生する場合には、問題のあるインスタンスがどこかから参照されているのですよね? その参照をなくしてしまえば(nullを代入してしまえば)、問題を起こすインスタンスは存在しないのと同じことになるので、適切なインスタンスが自動的に作られるのでは?
逆に、C++のdeleteのような機能があったとしても、どこかからまだ参照されているままのインスタンスをdeleteしたら誤動作の原因になります。結局はその参照を消さなくてはいけないので、明示的なdelete操作が要らない分だけJavaのほうが簡単です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
UMLでの例外処理
その他(プログラミング・Web制作)
-
[JAVA]try 内の変数を外で!?
Java
-
private static という変数の修飾
Java
-
-
4
C#において、同じインスタンスを何度もnewしてよいでしょうか。
その他(プログラミング・Web制作)
-
5
フォーム上で押されたボタンによってサーブレットの処理を変えたい
Java
-
6
count(*)で取得した値をJAVAの変数に代入するには?
Java
-
7
System.err. printlnとSystem.out.printlnはどう違うんでしょうか?
Java
-
8
コンストラクタの引数の中のnew?
Java
-
9
C# インスタンスの破棄
その他(プログラミング・Web制作)
-
10
インスタンスを同じ名前で作成できる?
Java
-
11
クラス間でのデータ参照
Java
-
12
Java-jspの画面入力値保持について
Java
-
13
【JAVA】数字をひし形に出力するプログラムについて
Ruby
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数名の付け方
-
private static という変数の修飾
-
インスタンス参照でアクセスで...
-
フォームの存在をチェックする方法
-
複数の変数を宣言する時、同時...
-
C# インスタンスの破棄
-
オブジェクト参照がオブジェク...
-
生成したインスタンスを削除す...
-
変数の参照でエラーが出てしま...
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
VB6.0で、DLLを動的に参照したい
-
マルチスレッド間でデータ交換...
-
データベースから日付型を取得...
-
serializeについて
-
カンマ区切りの数値文字列を数...
-
他のファイルの変数参照
-
C++の継承と呼び出しについて
-
C#の構造体の開放のしかた
-
インスタンスを同じ名前で作成...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
private static という変数の修飾
-
変数名の付け方
-
複数の変数を宣言する時、同時...
-
インスタンス参照でアクセスで...
-
生成したインスタンスを削除す...
-
オブジェクト参照がオブジェク...
-
C#において、同じインスタンス...
-
C# インスタンスの破棄
-
変数の参照でエラーが出てしま...
-
インスタンスを同じ名前で作成...
-
VB.NET getとsetの概念がわかり...
-
newしないインスタンス?実体化...
-
javaのクラスの作り方、エラー...
-
非staticフィールドを参照でき...
-
「インスタンス」の意味をわか...
-
[Visual C#] 優先される処理に...
-
フォームの存在をチェックする方法
-
大量のデータとインスタンスの...
-
C#「オブジェクト参照が必要で...
-
String a = "a"; と String b =...
おすすめ情報