[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 12139] Re: Generics と Interface で ( 別に パズルという訳ではないのですが ...)
- From: taro@xxxxxxxxxx (KADOWAKI, Taro)
- Date: Wed, 16 Nov 2005 21:29:07 +0900
門脇です。
At Wed, 16 Nov 2005 16:24:08 +0900,
"TAKAHASHI, Tomohiro" <t_takahashi@xxxxxxxxxxxxxx> wrote:
> 別にパズルという訳ではないのですが、以下のようにシグネチャが同一の
> メソッドを持つinterfaceを同時にimplementsすると、どうなるのでしょうか? (^^;
コンパイルは通りませんでした。
こんな感じにエラーになります。(クラス名は Untitled1 -> test.Test
になっています)
test/Test.java:20: 名前が競合しています。test.InfA<java.lang.String> の setData(T) と test.InfB<java.lang.Integer> の setData(T) はまだ他方をオーバーライドしていませんが、削除後の名前が同じです。
public class Test implements InfA<String>, InfB<Integer> {
^
エラー 1 個
eclipse だと
Name clash: The method setData(T) of type InfB<T> has the same erasure as setData(T) of type InfA<T> but does not override it.
というエラーメッセージが表示されます。
コンパイル時に、きちんと erasure 処理をした後の結果で、メソッド
のシグネチャをチェックするんですね....
--
門脇 太郎# C#なら大丈夫なんですかね?