2017-01-06 16 views
0

私の本では、一般的な引数を持つジェネリックメソッドを呼び出す方法は書かれていません。 私はこのような方法を持っています。ジェネリック引数を使用してジェネリックメソッドを呼び出す場合はどうすればよいですか?

public Vector<Double> VEKTOR(Vector <Double>num) 

このメソッドは、ベクターのサイズを返します。 結果を得るには、私はそのメソッドを呼び出す必要があります..しかし、私の本はそれを説明していないので、ジェネリックメソッドと汎用引数を呼び出す方法がわかりません。私はそれについていくつかの質問を読んだが、理解しづらい(英語が不足しているため、ほとんどは学んだことのないスキルについて語っていた)。

+0

ヨは、JavaのOracleドキュメントを読むことができます:https://docs.oracle.com/javase/tutorial/java/generics/methods.html –

+0

"_this方法は、ベクトルのsize_を返します" - いいえ。これは 'VEKTOR'と呼ばれるメソッドで、' Vector 'を返します。 –

+0

この投稿にコメントしたすべての方に感謝します。メソッドのスタイルとして<>を使用するのは初めてのことでした(私の本の説明がなくても残念ですが英語はわかりません)。だからこそ、私はいくつかの特別なトリックを使うべきです。しかし、今私は何をすべきか知っています!ありがとう! – javaprogrammer

答えて

1

あなたは一般的な方法ではない。一般的な型の特定の実現が返される通常のメソッドです。 である場合、いくつかの状況(すなわち、メソッドの型パラメータを推論できない場合)で複雑になる可能性がありますが、一般的に汎用メソッドを呼び出すことは、通常のメソッドを呼び出すことと実質的に同じです。

さらに、ジェネリック型の具体的な実現である戻り型または引数型を持つ、通常または汎用のメソッドの呼び出しには特別な規則はありません。メソッドは存在し、アクセス可能でなければなりません。実際の引数は、宣言された引数型と代入互換でなければならず、戻り値は、その型と一貫して使用されなければなりません。これのどれも刺激的でも異なってもいません。

要するに、あなたの本は何も言いたくないので、何も言わない。

例:

// ... 
Vector<Double> argument = new Vector<>(); 
// ... maybe add some values ... 
Vector<Double> result = VEKTOR(argument); 
+0

ああ、ありがとう!私はちょうど私がいくつかの特別な(?)トリックでこれを呼び出すべきだと思ったので、ちょっと思った。ありがとうございました! – javaprogrammer

関連する問題