javaのソースにsuper(String);といった記述がありました。この処理によって文字列Stringはどのような変化をするのでしょうか。スーパークラスと関連はあるのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

> 以下の記述があった場合基底クラスはhogehogeでよいのでしょうか。


違います。hogehogeは扱っているクラスそのもの(何か用語があったかな?)です。
コード中では、thisというキーワードでインスタンスを参照することができます。
ご質問のコードには、実は基底クラスが書かれていないのですが、この場合、
基底クラスjava.lang.Objectの記述が省略されていると見なされます。

具体的に基底クラスを指定する場合は、例えば
class A extends B {
}
という記述をすると、BがAの基底クラス(AはBの導出クラス)となります。
class B の記述は、どこか別のところにあることになります。
    • good
    • 0
この回答へのお礼

わかりやすい説明をいただきありがとうございました。

お礼日時:2002/01/08 17:22

多分、"String"の部分は、ソースそのままの記述ではなく、nights03さんが、その引数がString型であるのを


見てこのように記述されたのだと思います。その前提で書きます。
superの意味は、a-kumaさんがおっしゃっているように、基底クラスのコンストラクタの呼び出しです。
コンストラクタのうち、String型の引数をとるものが呼び出されます。その処理の中で、その引数が
どのように使われるのかは、そのコンストラクタ次第ですが、仮に何か変化させた場合でも、それは
元の引数には反映されません。これは、一般的に参照型の引数について言えることではなく、String型の
特徴なのですが、String型は変化させることができず、必ず新しいインスタンスが作られるからです。
    • good
    • 0
この回答へのお礼

おっしゃる通りでコンストラクタ中に記述されていたものを勝手にString型の変数と思いこんでいました。ですが基底クラスがいまいち理解できていない為混乱しています。たとえば以下の記述があった場合基底クラスはhogehogeでよいのでしょうか。

public class hogehoge {
....
....
public hogehoge(String title){
super(title);
...
...

お礼日時:2002/01/08 11:17

それは、コンストラクタの中に記述があったはずです。



super(引数) は、基底クラスのコンストラクタを呼び出します。
引数がどうなるかは、その基底クラス次第なんですが、普通のクラスならば、
コンストラクタで、その引数に対して変化を与えるようなことはしないはずです。
    • good
    • 0
この回答へのお礼

おっしゃる通りコンストラクタ中に記述がありました。基底クラスの理解が足りないのでなにをしているのかがいまいち理解できませんが、、、

お礼日時:2002/01/08 11:20

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QIOException ってどういうときに起こるのでしょうか?

IOException ってどういうときに起こるのでしょうか?

http://www.atmarkit.co.jp/fjava/rensai2/javaent12/javaent12.html
を見て勉強しています。

  catch ( IOException e) {
    System.out.println( "キーボードが故障しているのかもしれません" );
  }

と書いてあります。
ハード(キーボード)が故障しているのを Java のプログラムのレベル(ソフトウェア)で感知できるというのがよくわかりません。「

NumberFormatException の方はわかるのですが・・・

Aベストアンサー

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接続だったりするわけですけど、
InputStreamは、その入力元の情報を持っていないので、
データを読み取る際は常に
IOExceptionをキャッチするコードを書かなくてはいけません。
たとえ、絶対にIOエラーが発生しないストリームだとしても。

さらに付け加えるなら、
そもそも「標準入力=キーボード」であるとは限りません。
(一般的にはキーボードであることが多いですが。)
Javaでは、
System.setIn(InputStream)
を呼び出して、標準入力を変えてしまうことができますし、
標準入力を指定してプログラムを実行することができるOSもあります。

追伸1:
例外をキャッチしたときは、
スタックトレースをプリントすることをおすすめします。
catch (IOException e) {
e.printStackTrace();
}

追伸2:
そのプログラムでIOExceptionを発生させる最も簡単な方法は、
readLine()を呼び出す前に
標準入力(System.in)を閉じてしまうことです。
System.in.close();

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接...続きを読む

QdoGetとdoPostの違い

それぞれブラウザからのリクエストの種類に対応する
メソッドがdoGet,doPost。
doGetはブラウザからGETでそのサーブレットに
リクエストがあった時に、処理が始まるメソッド、
doPostは同じようにPOSTを受け取った時に動き出す

・・・・・ということなのですが、
doGetもdoPostも、中身のコーディングの仕方としては
同様でいいのでしょうか?
いま、doGetでリクエストに対応する処理をうけつけて
いるのですが、255バイトまでなのでdoPostのほうが
いいということがかかれていました。

これは、ブラウザ:Servletのメソッドで対応してれば
いいだけで、結局は送信量の違いだけですか?
そのへんがよくわかってないので教えてください。

ちなみに、doGetでやってる処理は、

public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

//Bean(workBean)のインスタンス作成
wk = new work_Bean();
//Bean処理実行
wk.Work();





//BeanをJSPに渡すためにHttpServletRequestオブジェクトにセット
request.setAttribute("wk",wk) ;

//ViewであるJSPを呼び出す
RequestDispatcher rDispatcher =
request.getRequestDispatcher("/kanri_JSP.jsp");
rDispatcher.forward(request,response);

こんなかんじでしてます。
あとは、ネットで、人のサンプルとかみると
doGetメソッドに処理をかいており、doPostでは
doGet(request,response);として
doGetをよんでたりするんですが、
これは、PostでもGetと同様の処理ができると
いうことですか?
基本的な質問過ぎるかとおもいますがおしえてください。

それぞれブラウザからのリクエストの種類に対応する
メソッドがdoGet,doPost。
doGetはブラウザからGETでそのサーブレットに
リクエストがあった時に、処理が始まるメソッド、
doPostは同じようにPOSTを受け取った時に動き出す

・・・・・ということなのですが、
doGetもdoPostも、中身のコーディングの仕方としては
同様でいいのでしょうか?
いま、doGetでリクエストに対応する処理をうけつけて
いるのですが、255バイトまでなのでdoPostのほうが
いいということがかかれていました。

これは、ブ...続きを読む

Aベストアンサー

GET と POST では、パラメータをプログラムに渡す仕組みが全く違います。
仕組みが違うので渡せるパラメータの大きさが違う、等の違いが出てきます。

ですが、Servlet では、その違いを request オブジェクトが全部隠してくれて
いるので、気にしなくて良いです。つまり、同じことができて、呼出され方が
違う、と。

普通は、html や JSP の方も、Servlet を意識して書くでしょうから、
どちらかだけの実装で良いのですが、汎用的(呼ぶ人を特定しない)な Servlet
を書こうと思ったら、両方を実装しておく、と理解しておけば良いです。


ちなみに、GET で渡せるパラメータの大きさは 255 バイトと決っているわけでは
ないし、POST で渡せるパラメータの大きさに制限が無い、というわけでもあり
ません。

GET の制限は、どちらかというとブラウザ側の実装によって決ってくることで、
POST に制限があるとしたらサーバ側(例えば、Servlet コンテナ)の実装に
よってきます。

QサーブレットとJSPについて

こんにちは、今回初投稿させてもらいます。aetklimです。よろしくお願いします。
過去ログを見たのですが、同じような質問が見当たらなかったので、質問させてもらいます。 初歩的なことなのですが、サーブレットとJSPの意味(違い)が分かりません。本やサイトなどで調べたのですが、初めての僕には意味不明なのでどなたか、詳しく、分かりやすいく説明してもらいませんでしょうか。 どうか、よろしくお願いします。返答をお待ちしております。

Aベストアンサー

JAVA言語そのものについてはある程度は理解されているでしょうか。
また、WEBの仕組みやWEBアプリケーションについての理解も必要です。

Java Servletというのはサーバーの内部で動作するJAVA言語で作られたアプリケーションです。
動作としてはCGIと同じような動きをします。(仕組みは違いますが)
掲示板を例にするとHTMLページから送信されたデータを受取り、ファイルに書き込み、その結果画面をブラウザに送信するといった処理を行うのがServletです。

JSPはHTMLの記述の中にJAVAのコードを記述することでコンパイルなしでデータの受取りや動的なページの生成を行う技術です。
Servletを用いても動的なHTMLは作れますが、HTMLのコード全てをServletから送信しなければならないので面倒であり、また、HTMLは画面デザインに関係してくるので
コンパイルが必要なServletに記述していては画面の変更などをHTMLファイルのように簡単に行えません。
JSPはコンパイルをせずHTMLファイルの中に直接JAVAコードを記述するだけでで動的なページを生成できるのでデザインの変更などが行いやすいのがメリットです。
ただし、あまりJAVAコードを記述すると内容が複雑となり管理しにくくなります。
そこで役割としてサーバ内部の処理はServletで行い、画面表示はJSPで行うというのが一般的な方法となっています。

JSPはコンパイルしないと書きましたが、実際はサーバにインストールされたJSPコンテナというモジュールによって自動的にコンパイルされServletに変換されています。
簡単に書くとJSPはHTMLの中にServletのJAVAコードが埋め込まれていてアクセス(起動)されると自動的にコンパイル・実行を行う機能です。
つまりJSPも結局は同じServletであるということになります。
ただ、プログラムの処理と表示する画面の部分をメンテナンスしやすいように別々にしているという訳です。

下記のページで分りやすく解説されているので参考にしてください。

JSP・サーブレットについての解説
http://www.atmarkit.co.jp/fjava/rensai2/jspservlet01/jspsevlet01_1.html

WEBの仕組み
http://www.lsd.tamagawa.ed.jp/johokiso/ITTEXT2001/FPEx/FPIndex.htm
CGIについて
http://www.mytools.net/cgitips/index.html

JAVA言語そのものについてはある程度は理解されているでしょうか。
また、WEBの仕組みやWEBアプリケーションについての理解も必要です。

Java Servletというのはサーバーの内部で動作するJAVA言語で作られたアプリケーションです。
動作としてはCGIと同じような動きをします。(仕組みは違いますが)
掲示板を例にするとHTMLページから送信されたデータを受取り、ファイルに書き込み、その結果画面をブラウザに送信するといった処理を行うのがServletです。

JSPはHTMLの記述の中にJAVAのコードを記述する...続きを読む

Qシンボルが見つかりませんというエラーが理解できません。

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Image[3];
Thread t;
int index1 = 0;
int index2 = 0;
String msg = "";
String msg1 = "";

boolean state = false;
Button b1 = new Button("ぐー");
Button b2 = new Button("ちょき");
Button b3 = new Button("ぱー");

public void init(){
for(int i = 0; i<=2; i++){
img[i] = getImage(getDocumentBase(),"hanabi" + (i+1) + ".JPG");
}
add(b1);
add(b2);
add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
msg1 = "結果は・・";

}

public void paint(Graphics g){
g.drawImage(img[index1],350,30,this);
g.drawImage(img[index2],695,30,this);
g.drawString("コンピューター",420,300);
g.drawString("あなた",800,300);
g.drawString(msg,630,320);
g.drawString(msg1,550,320);
}

public void start(){
state = true;
t = new Thread(this);
t.start();

}

public void run(){
while(state){
index1++;
if(index1 == 3){
index1 = 0;
}
index2++;
if(index2 == 3){
index2 = 0;
}
repaint();
try {
Thread.sleep(60);
}catch(InterruptedException e) { }
}
}

public void actionPerformed(ActionEvent e){
if(state == false) {
start();
return;

}
state = false;
if(e.getSource() == b1) {
msg = "ぐー";
index2 = 0;
}

else if(e.getSource() == b2){
msg = "ちょき";
index2 = 1;
}

else if(e.getSource() == b3){
msg = "ぱー";
index2 = 2;
}
check();
repaint();
}

public void check() {
if(index1 == index2) msg ="あいこ";


else if (index1 == 0) {
if(index2 == 2) msg="あなたの勝ち";
else msg ="あなたの負け";
}

else if(index1 == 1) {
if(index2 == 0) msg="あなたの勝ち";
else msg="あなたの負け";
}

else if(index1 == 2) {
if(index2 == 1) msg="あなたの勝ち";
else msg="あなたの負け";
}

}
}

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Imag...続きを読む

Aベストアンサー

「シンボルを見つけられません。」というエラーの下に何か表示がありませんでしたか?そこにヒントがあると考えられます。
シンボルを見つけられませんといエラーが表示される主な理由は4つあります。
(1)クラス、メソッド、変数などの綴りミスや定義していない変数を使用している可能性がある。
(2)コンストラクタを呼び出すときに、newを忘れている可能性がある。(3)公開されていないメンバーを呼び出している可能性がある。
(4)必要なimport文を記述し忘れている可能性がある。
ここでのあなたのエラーは(1)番ではないでしょうか?上記ではimageとなっている変数がimgになっていますね。
これはエラー表示をよく見ることで意外と簡単に解決できるのです。
ゆっくり丁寧にエラー表示を見るように心がけることが大事ですよ。

QNullってどういう意味ですか?

プログラミングで「Null」っていうのがよく出てきますけれど

一般的にどういう時に使うものなのか分かりやすく教えていただけませんか?

Aベストアンサー

値が何もないことをさします。
普通に考えると、値がないのであれば「0」でいいじゃないか、
というふうに思ってしまうのですが、
プログラミングの場合は「0」も意味をもつので、
特にNULLと表現します。

例えば、真=1 偽=0 値なし=NULL
という具合。
…真偽が反対だったらゴメンナサイ。

QJavaで改行などが出来ないのです。

 Java の事で質問です。 
 

 System.out.println("このようにしても\n");

 改行できません。
 
 このようにしても\n   

 と表示されてしまいます。どうしてでしょう。ちなみにOSはMacOS9.1です。なにか関係があるのでしょうか?

Aベストアンサー

> class amigo{
> public static void main(String args[]) {
> System.out.print("aaaaaaaa");
> System.getProperty("line.separator");
> System.out.print("bbbbbbbb");
> }
> }
> のような使い方でしょうか?

String line_sep = System.getProperty("line.separator");
System.out.println("あいうえお" + line_sep + "かきくけこ");

こうです。

Qラジオボタンの初期指定

ラジオボタンを12個使用する画面を今作っているのですが、初期立ち上げ時に1番目のラジオボタンを選択した状態にするのはどうすれば良いのでしょうか?

プログラムの流れ上選んでいなくても、1番目を選んだ状態に次のウィンドウは開くのですが、聞く話で、それは不安定要素があるって聞いた物ですから。

Aベストアンサー

VB.NETだったら
デザイン時に
Checkedをtrue

Q抽象クラスのメリット

抽象クラスを作成して、オーバーライドするならば、
普通のクラスを作成してオーバーライドしても同じ
ではないでしょうか。
オーバーライドする事を忘れない、というメリットでは
パンチが弱い気がします。
他に抽象クラスを使用する事によってのメリットは
ありますでしょうか?

Aベストアンサー

抽象クラスを使うということは、抽象クラスのメソッドは実装しないってことです。
普通のクラスを継承する場合は、オーバーライドする親クラスのメソッドは実装しなければコンパイルエラーになります。
空実装をしておけばいいですが、実際に実装する立場からすると抽象化しておくことで、明示的に実装させることができます。
「オーバーライドを忘れない」というメリットは、決してパンチが弱いものではありません。
自分で抽象クラスを作って、自分で実装をするならそう思うかもしれませんが、フレームワークとして公開することによって、その実装を知らなくても安全に使えるということにつながります。

Qエラーで式の開始が不正ですと出ます。

質問内容 課題
・ファイル student.txt に学生データ(学籍番号、氏名、所属学部)が入っている。
・半角文字で学籍番号を入れて、検索ボタンを押すと、氏名と学部が表示される。

・存在しない学籍番号を入れて、検索ボタンを押すと、「該当なし」が表示される。




・ファイル student.txt の内容。
 学籍番号 氏名 学部の間は半角スペースで区切る。 0521201 金城花子 文学部
0533101 守山春子 生活環境学部
0561101 大森夏子 人間科学部
0552130 名城秋子 現代文化学部
0571201 鶴舞冬子 薬学部

プログラムソース↓
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

class kadai2Frame extends JFrame {
private JTextField tf1,tf2,tf3;
public kadai2Frame() {
setSize(200,100);
addWindowListener(new WindowAdapter() { // ×クリック時の終了処理
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});


Container c=getContentPane();
c.setLayout(new GridLayout(4,2)); // グリッドレイアウト4 行2 列を指定
c.add(new JLabel("学籍番号")); // 最初のラベルを作成して[名前]と表示
c.add(tf1=new JTextField("",8));
c.add(new JLabel("氏名")); // 最初のラベルを作成して[名前]と表示
c.add(tf2=new JTextField("",8));
c.add(new JLabel("学部")); // 次のラベルを作成して[年齢]と表示
c.add(tf3=new JTextField("",8));
JButton bt;
c.add(bt=new JButton("検索")); // ボタンbt を作成して[検索]と表示
bt.addActionListener(new ActionListener() { // ボタンbt のリスナーを登録
public void actionPerformed(ActionEvent e) { // ボタンが押された時

string s6 = tf1.getText();
if(s1.equals(s6)){tf2.setText(str1Ary[1]);

string s6 = tf1.getText();
if(s2.equals(s6)){tf2.setText(str2Ary[1]);



string s6 = tf1.getText();
if(s3.equals(s6)){tf2.setText(str3Ary[1]);




string s6 = tf1.getText();
if(s4.equals(s6)){tf2.setText(str4Ary[1]);



string s6 = tf1.getText();
if(s5.equals(s6)){tf2.setText(str5Ary[1]);


}


public static void main(String[] args) {
JFrame w=new kadai2Frame();
w.setVisible(true);


try{
BufferedReader br =
new BufferedReader(new FileReader("student.txt"));
}
catch (FileNotFoundException e) {


String str1 = br.readLine();
String str2 = br.readLine();
String str3 = br.readLine();
String str4 = br.readLine();
String str5 = br.readLine();

String[] str1Ary = str1.split(" ");
for (int i=0; i<str1Ary.length; i++) {
System.out.println(str1Ary[i]);
}



String[] str2Ary = str2.split(" ");
for (int i=0; i<str2Ary.length; i++) {
System.out.println(str2Ary[i]);
}

String[] str3Ary = str3.split(" ");
for (int i=0; i<str3Ary.length; i++) {
System.out.println(str3Ary[i]);
}

String[] str4Ary = str4.split(" ");
for (int i=0; i<str4Ary.length; i++) {
System.out.println(str4Ary[i]);
}

String[] str5Ary = str5.split(" ");
for (int i=0; i<str5Ary.length; i++) {
System.out.println(str5Ary[i]);
}


String s1 = "str1Ary[0]";
String s6 = "tf1";
String s2 = "str2Ary[0]";
String s3 = "str3Ary[0]";
String s4 = "str4Ary[0]";
String s5 = "str5Ary[0]";

}
}
});
}
}

以上です。誰か教えてください!!(ToT)

質問内容 課題
・ファイル student.txt に学生データ(学籍番号、氏名、所属学部)が入っている。
・半角文字で学籍番号を入れて、検索ボタンを押すと、氏名と学部が表示される。

・存在しない学籍番号を入れて、検索ボタンを押すと、「該当なし」が表示される。




・ファイル student.txt の内容。
 学籍番号 氏名 学部の間は半角スペースで区切る。 0521201 金城花子 文学部
0533101 守山春子 生活環境学部
0561101 大森夏子 人間科学部
0552130 名城秋子 現代文化学部
0571201 鶴舞冬子 薬学...続きを読む

Aベストアンサー

動かないこと前提に。
まず,
if文の構文がおかしいので直します。最後に}をつける

if(s1.equals(s6)){tf2.setText(str1Ary[1]);}
string s6 = tf1.getText();
if(s2.equals(s6)){tf2.setText(str2Ary[1]);}
string s6 = tf1.getText();
if(s3.equals(s6)){tf2.setText(str3Ary[1]);}
string s6 = tf1.getText();
if(s4.equals(s6)){tf2.setText(str4Ary[1]);}
string s6 = tf1.getText();
if(s5.equals(s6)){tf2.setText(str5Ary[1]);}

53行目の閉じ括弧に対応するのは
28行目の括弧です。

つまり public static void mainも
bt.addActionListener(new ActionListener(){ 27行目
}) 111行目
の中に入っているのでしょうが,
おそらくメソッドを二つ入れる形になっているのでエラーがでているんだと思います。

111行目を取り除いて
54行目に
});
を記述します

次に mainの前に
public kadai2Frame() {
を閉じていないことがわかるので
55行目に
}
を補います。
これで応急処置は終わりです。それまでに閉じているはずのものを全然閉じてないからエラーが出ていたんです。

61行目のtry{は64行目
65行目のcatch{はfor文は対応関係が正しいから無視して}109行目。
mainの終了は
110行目。
すると
112行目がクラスの終わりだから
113行目はいらない。

そうすると,シンボルが見つからない云々というエラーだらけになります。

これは,変数の宣言位置とスコープの問題なのでそのエラーとは別に解決してください。

変数宣言をきちんとやれば,コンパイルは通るはずです。
#思い通りには動かないと思うけど。

動かないこと前提に。
まず,
if文の構文がおかしいので直します。最後に}をつける

if(s1.equals(s6)){tf2.setText(str1Ary[1]);}
string s6 = tf1.getText();
if(s2.equals(s6)){tf2.setText(str2Ary[1]);}
string s6 = tf1.getText();
if(s3.equals(s6)){tf2.setText(str3Ary[1]);}
string s6 = tf1.getText();
if(s4.equals(s6)){tf2.setText(str4Ary[1]);}
string s6 = tf1.getText();
if(s5.equals(s6)){tf2.setText(str5Ary[1]);}

53行目の閉じ括弧に対応するのは
28行目の括弧です。

...続きを読む

Q「ラッパークラス」の存在意義が分かりません。

「ラッパークラス」の存在意義が分かりません。

ラッパークラスの使い方などについての解説はよく目にしますが、
その意義となると、明確な説明を見たことがありません。
(本質問では、使い方を質問しているわけではありません。)

どういう意味で、便利なのか、
つまり、その存在価値について、お聞きしたいのです。

これがないと乗り越えられない壁があるのでしょうか。
その壁を乗り越えるための道具として、用意されたものであるなら、
その壁というものを教えて頂きたいです。

どなたか宜しくお願い致します。

Aベストアンサー

個人的に納得している状況を話しますね。
プリミティブなデータ(例えばint)はそれ自体に実体が
あるから、「インスタンス化」なんてしませんよね。
ということは「null」には絶対にならないわけです。
ところで、データベースからレコードを読み込み、整数型の
フィールドのデータを受け取ることを想定します。
そのフィールドがnullだった場合、受け取る変数がint型で
あったら、「nullであること」を表現できません。nullと
0は違いますからね。でも、Integer型の変数ならnullにする
ことができます。それにtoStringで編集したりできるのも
ウレシイところです。
あと、リフレクションをやると分かりますけど、実行させる
メソッドに渡す変数は本体の定義がプリミティブ型でも、
オブジェクト型の配列にする必要があるので、ラッパークラスに
限られます。


人気Q&Aランキング