型パラメータを引数の型に持つメソッドのオーバーロード
後で調べるためにメモ (あ、かわりに調べておいてくれても全然問題ないです)。
// これはエラー public static <L extends List<String> & RandomAccess> String join(L strs, String separator) { ... } public static String join(List<String> strs, String separator) { ... }
// 制約の順番を入れ替えると上手くいく public static <L extends RandomAccess & List<String>> String join(L strs, String separator) { ... } public static String join(List<String> strs, String separator) { ... }
今まで、Java では型パラメータは単純に Object になるものだと思っていたんだけど、もしかして extends 使うと一番左側のクラスになる・・・?