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で質問しましょう!
似たような質問が見つかりました
- PHP isset — 変数が宣言されていること、そして null とは異なることを検査 1 2022/03/27 17:34
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- Excel(エクセル) 別インスタンスのエクセルを制御したい 1 2023/05/10 02:03
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Java インスタンス ダウンキャストについて以下の解釈であっているか教えて欲しいです。 サブクラスをスーパー 1 2022/03/27 18:53
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
private static という変数の修飾
Java
-
final修飾子を使っているのに、なぜエラーが出るのでしょうか?
Java
-
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
-
4
newしないインスタンス?実体化しなくてもいいの?
Java
-
5
[JAVA]try 内の変数を外で!?
Java
-
6
System.err. printlnとSystem.out.printlnはどう違うんでしょうか?
Java
-
7
A4サイズのPDFデータを2枚合わせてA3サイズ1枚のPDFデータにしたい
その他(ソフトウェア)
-
8
フォーム上で押されたボタンによってサーブレットの処理を変えたい
Java
-
9
onClickで関数呼出し後に、結果に応じてsubmitを実行する方法
JavaScript
-
10
StringBufferからStringへキャストする
Java
-
11
外部参照してるキーを主キーにすることは可能?
その他(データベース)
-
12
べき乗
Java
-
13
flush()とclose()について
Java
-
14
画面を隠す・消す方法を教えてください。
Java
-
15
JAVAでCの関数ポインタのようなことをするには?
Java
-
16
yyyymmddからyyyy/mm/ddへの変換
Java
-
17
“try/catch”と“if/else”
C言語・C++・C#
-
18
javaでcsvファイル読込時の改行について
Java
-
19
C# インスタンスの破棄
その他(プログラミング・Web制作)
-
20
JSPでImportエラーになります
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数名の付け方
-
private static という変数の修飾
-
インスタンス参照でアクセスで...
-
C# インスタンスの破棄
-
複数の変数を宣言する時、同時...
-
C#において、同じインスタンス...
-
VB.NET getとsetの概念がわかり...
-
他のファイルの変数参照
-
生成したインスタンスを削除す...
-
非staticフィールドを参照でき...
-
VB.netで標準モジュールからフ...
-
変数の参照でエラーが出てしま...
-
ファイル読み込み/書き込み速度...
-
VB.NET Newしたものを変数に代...
-
フィールドでのnewとコンストラ...
-
フォームの存在をチェックする方法
-
整数の引数に列挙を使ったとき
-
インスタンスを同じ名前で作成...
-
文字列を日付に変換でParseExce...
-
SerialPort処理でInvokeメソッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
newしないインスタンス?実体化...
-
SQLを連続発行する時の正しい(?...
-
「インスタンス」の意味をわか...
-
文字列を日付に変換でParseExce...
-
変数の参照でエラーが出てしま...
-
フォームの存在をチェックする方法
-
javaのクラスの作り方、エラー...
-
オブジェクト参照がオブジェク...
-
String a = "a"; と String b =...
-
エクセル(複数インスタンス)...
-
C#「オブジェクト参照が必要で...
-
他のファイルの変数参照
おすすめ情報