0

学校向けのプロジェクトに取り組んでいます。基本的に、いくつかのスキャナーでスクリプトを作成する必要があります。たとえば、次のようになります。

  • 対応するASCIIコードを整数から返すので、スキャナーから
  • double を指定して球面を返します。

両方の機能の Scanner クラスを作成したいと思います。ただし、1 は整数でなければならず、2 番目は double でなければなりません。関数が倍精度または整数を返すかどうかを確認するにはどうすればよいですか?

私は次のコードを使用しています:

public static [Heres what goes wrong] vrager (String type, String tekst) {

Scanner vraag = new Scanner(System.in);

System.out.println(tekst);

type variable = vraag.next();

return variable;

したがって、関数を呼び出すと、次のようになります。seconden = (vrager("int", "How many seconds?:));

しかし、関数を double に対しても機能させたい場合は、関数が double を返すことを期待していないため、うまくいきません。

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

11

Adoubleは可能なすべてのint値を表すことができるため、double を返します。

于 2012-11-03T18:41:55.723 に答える
3

同じ名前、同じパラメーター、異なるタイプの2つの関数を使用することはできません。それを実装する方法は少なくともいくつかあります。次のように実行できます。

public static Number vrager (String type, String tekst) {
    ...
    Double ret=....
    --- or ---
    Integer ret....
    return ret;
}

クラス番号のドキュメントを参照してください

別の方法はジェネリックを使用することです: メソッドの戻り型をジェネリックにするにはどうすればよいですか?

于 2012-11-03T18:46:10.073 に答える