3

私はJavaジェネリック型を勉強しています。

抽象クラス AbstractInputdata があります。

public abstract class AbstractInputData {
....
}

AbstractInputData を拡張するいくつかのクラス

public class Email extends AbstractInputData{
...
}
public class Mobile extends AbstractInputData{
...
}
......

A.

public class ProcessorA {
public static boolean isCustomData(AbstractInputData abstractInputData) {
....
}
}

B.

public class ProcessorB {
public static <T extends AbstractInputData> boolean isCustomData(T t) {
...
}
}

AとBに違いはありますか?

4

2 に答える 2

5

唯一の違いは、2 番目のメソッドがリフレクションを介してジェネリック型指定されたメソッドとして表示されることです。このような奇妙なケースを除いて、動作は同じです

processorB.<MyType>isCustomData(t); // won't compile unless t is a MyType

一致すると予想されるタイプを指定する必要がありますが、これはあまり役に立ちません。

于 2013-09-05T09:12:30.183 に答える