memo

java,ActionScript,javascript,html,css,ソーシャルマーケティングなどのメモ

Tag: java

java.lang.StringのtoStringをオーバーライドできない

        

まず、以下のコードはコンパイルが通ります。

public class Rectangle {
int width;
int height;

public Rectangle(int width, int height) {
this.width = width;
this.height = height;
}

public String toString(int a, int b) {
return “[” + width + “, ” + height + “]”;
}

public static void main(String[] args) {
Rectangle rec = new Rectangle(100, 300);
System.out.println(rec.toString());
}
}

ですが、次のコードはコンパイルエラーとなります。

public class Rectangle {
int width;
int height;

public Rectangle(int width, int height) {
this.width = width;
this.height = height;
}

public void toString(int a, int b) {
System.out.println(“[” + width + “, ” + height + “]”);
}

public static void main(String[] args) {
Rectangle rec = new Rectangle(100, 300);
rec.toString();
}
}

これはjava.lang.StringのtoStringというメソッドをオーバーライドしているのですが
オーバーライドの基準が戻り値と引数(シグニチャ)と見ているみたいで
戻り値だけだと型の不一致でコンパイラに怒られます。

エラー文

Rectangle.java:10: Rectangle の toString() は java.lang.Object の toString() をオーバーライドできません。互換性のない戻り値の型を使おうとしました。
検出値 : void
期待値 : java.lang.String
public void toString() {
^
エラー 1 個

なのでオーバーライドされるメソッド
public String toString()

public void toString()

とどうしてもしたい場合は無駄に

public void toString(int a)

などとすればOKです。
OJC-Pの試験問題とかでそうですね。

Serviceクラスは勝手に作ったパッケージから呼べない

        

sastrutsで勝手にパッケージ切ってクラスを作っていた。

そのクラスの中からサービスクラスを呼ぼうとしてもインスタンスがnullでいみ分からなかった。

エラーはnull pointer Exception。

で、一日中格闘の末、もしかして、seasarのデフォルトのパッケージからしか呼べないのでは?

と思い、サービスクラスを呼ぶメソッドをアクションクラスに移動。

でつかえましたとさ。

どっか、ドキュメントに書いてあったのかもしれませんね・・・・・・・・・

jspでコンテンツが表示しない時

        

s:formの記載より以下が表示しなかった。

そしたらs:formでsubmitするアクションのパスが間違っていた。

さくらVPSの申し込み方法

        

980円/月で使える、さくらVPS。
JAVAが動くサーバーを探してたところ
都合よく始まった安く好き勝手できるサービス、
それがさくらVPS。
また、今は2週間のお試し期間中なのでその間は無料で使うことができます。
Read the rest of this entry »