私はSetオブジェクトを返すAPIからメソッドを呼び出しています。私が知る限り、Setはインターフェースであり、インターフェースをインスタンス化することはできません。私はこのセットをとり、その上でtoArray()を呼び出すことができます。 Setは実際に何を返していますか?メソッドはどのようにしてJavaでSetを返すことができますか?
答えて
それはSet
を返すんが、Set
は単なるインタフェース以上であることを、理解する必要があります。
Set
を返すことができます実装するすべてのクラスのすべての実装。
public Set getMySet(){
return new HashSet();
}
Set
道具HashSet
いるので、これは動作します有効なコードです。
アプリケーションを実装ではなくインターフェイスに書き込むことは、広く使用されています。結局のところ、あなたのコード(例えば、サービスを使ったUI)を書く(そしてテストする)必要があるのはインターフェイスです。
具体的な実装をまだ手に入れることはできませんが、まだ存在しないかもしれませんが、必要な作業をすべて完了することができます。
を参照してください。メソッドを作成した開発者は、Setインターフェイスを実装したオブジェクトを返すように設計しました。このメソッドはSetを返すので、そのSetにするオブジェクトを選択するオプションがありますか?開発者などがHashSetオブジェクトを返すかもしれませんが、TreeSet ts = methodThatReturnsSet()と言うことはできますか? –
@brentryczakいいえ、必要に応じて受信したセットを別のタイプに変換することはできますが、メソッドの戻り値の型は "Setを実装するものを返します。起こる。 " – khelwood
私のオプションは、インターフェイスが含まれているreturnステートメント(つまり、methodThatReturnsSet()。someMethod()、またはそれを実装するクラスにキャストするためのメソッドを呼び出すことです(TreeSet ts =(TreeSet)methodThatReturnsSet 。 –
メソッドからインターフェイスを返すということは、返されたオブジェクトがそのインターフェイスを実装することを意味します。
この場合、返されるオブジェクトは 'Set'を実装することを意味します。そのインタフェースに含まれているメソッドを呼び出すことはできますが、実装クラスからメソッドを呼び出すことはできません。
- 1. Javaメソッドは型Enumを返すことができますか?
- 2. どのようにして、プロパティークラスはJavaの '親'クラスのメソッドを呼び出すことができますか?
- 3. "add to set"はjavaでbooleanを返します - pythonについてはどうですか? Javaでは
- 4. C#メソッドがメソッドを返すことはできますか?
- 5. は、どのように私は返すことができますし、PHP
- 6. どのようにブロックを「バブルソート」メソッドに渡すことができますか?
- 7. どのようにしてPerlでループの繰り返しを行うことができますか?
- 8. どのようにしてJavaオブジェクトのメソッドをオーバーライドできますか?
- 9. どのようにスコープロックを返すことができますか?
- 10. クラスがjavaでメソッドを使用しないようにすることはできますか?
- 11. java StringTokenizer - nextTokenはnullを返すことができますか?
- 12. どのように私はSQLでカウント関数を使用して0を返すことができます
- 13. どのように私はすべてのキーをPythonとleveldbで繰り返すことができます
- 14. メソッド呼び出しを 'set()'ビルトインにチェーンすることができますか? (そしてなぜない?)
- 15. どのようにして、C++のメソッドから動的配列を渡すことができますか?
- 16. どのようにして(AppleScriptの)結果を次のワークフローに返すことができますか?
- 17. Javaは、setメソッド
- 18. このメソッドをJavaでどのように記述しますか?
- 19. Ctrl +クリックを右クリックとしてどのように行うことができますか? (Java)
- 20. Java:どのようにして、列挙型でコンストラクタのオーバーロードを使用することができますか?
- 21. メソッドはファイルを返すことはできますか?
- 22. C#List.Findメソッド - どのようにして述語に値を渡すことができますか?
- 23. コメント内にないメソッド名はどのようにして見つけることができますか?
- 24. どのように私は繰り返しTkxでユーザを促すことができますか?
- 25. どのようにして永久に移行を繰り返すことができますか?
- 26. Tkinterはどのようにして始めることができますか?
- 27. どのようにしてPerlコードを隠すことができますか?
- 28. Javaでは、どうすればSystem.outをnullにしてからstdoutに戻すことができますか?
- 29. Javaでsetメソッドとgetメソッドに問題がある
- 30. PHPとMySQL:どうすれば "SET @ rank = 0;"を使うことができますか?私のPHPファイルで$クエリ=
このメソッドは、 'Set'インタフェースを実装するいくつかのクラスのインスタンスを返します。 [polymorphism](https://en.wikipedia.org/wiki/Polymorphism_%28computer_science%29) – khelwood