次のようなメソッドがあるとします。
static class Example
{
public static <N extends Number> Number getOddBits(N type)
{
if (type instanceof Byte) return (byte)0xAA;
else if (type instanceof Short) return (short)0xAAAA;
else if (type instanceof Integer) return 0xAAAAAAAA;
else if (type instanceof Float) return Float.intBitsToFloat(0xAAAAAAAA);
else if (type instanceof Long) return 0xAAAAAAAAAAAAAAAAL;
else if (type instanceof Double) return Double.longBitsToDouble(0xAAAAAAAAAAAAAAAAL);
throw new IllegalArgumentException();
}
}
メソッドの実際の詳細はそれほど重要ではありません。ただし、このメソッドを呼び出すには、次を使用します。
Example.<Float>getOddBits(0f);
私の質問は、従来のパラメーターなしでそのようなメソッドを作成することは可能ですか? 過負荷なし、そして最終的にはボクシングなし。
理想的には次のように呼び出されます。
Example.<Byte>getOddBits();