2012-03-28 11 views
0

(char、double、char)を受け取り、doubleまたは文字列を返すメソッドを実行しています。Java - データ型の不一致を処理してプログラムを続行

文字列を返すときにエラーが発生しました。どのように文字列を処理してプログラムを続行できますか?

私はtry catchを持っており、文字列をキャッチしていますが、プログラムは停止しています。

ありがとうございます。

コードの私が持っているすべてを、

public class Function 
{ 
    public static double shippingCost(char packageType, double weight, char customerType) 
    { 
    ................. 
    ................. 
    } 

} 

良いデザインであることを意味していません*。エラーテスト用です。

+1

'はdoubleを返します。しかし、時には文字列も返します。この点を明確にすることはできますか?例を挙げてください。 –

+1

コードサンプルは、あなたの問題が何であるかを理解するのが難しいので、非常に役立ちます。 – Chan

+0

いいえ、あなたは一種のものしか返せません。これをjava.lang.Objectにして、java.lang.Stringまたはjava.lang.Doubleを返すことはできますが、それはまったく良い抽象ではありません。配送コストをダブルまたはストリングとして返す理由はありません。私は、Moneyクラスを書いて、それを返すだろう。 – duffymo

答えて

3

メソッドからObjectを返すことができます(これにより、StringまたはDoubleを返すことができます)。このメソッドを呼び出すコードでは、返された結果がどのような型のオブジェクトであるかを検出する必要があり、正しく処理できるようになります。

+1

偉大な..それはアプローチが非常に良いまたは醜いではない理由を伝えるのに役立ちます.. – Jayan

2

コードロジックを分割する必要があります。一方のメソッドはdoubleを返し、もう一方のメソッドはStringを返します。パラメータにも同じことを適用する必要があります。メソッド本体内で常に使用されるものだけを渡す必要があります。コードをきれいにし、あいまいさを避ける。