Co najlepszym sposobem:Jak utworzyć instancję kolekcji w języku Java za pomocą programu Generics?
Set<String> myStringSet = new HashSet();
Albo
Set<String> myStringSet = new HashSet<String>();
Żadne z powyższych?
Czy to ma znaczenie?
Co najlepszym sposobem:Jak utworzyć instancję kolekcji w języku Java za pomocą programu Generics?
Set<String> myStringSet = new HashSet();
Albo
Set<String> myStringSet = new HashSet<String>();
Żadne z powyższych?
Czy to ma znaczenie?
Ten ostatni:
Set<String> myStringSet = new HashSet<String>();
Zobacz the Java documentation on generic types aby uzyskać więcej informacji.
Po prostu zacznij używać wersji bez typu ... kiedy zdasz sobie sprawę, że wszystkie irytujące odlewy musisz wykonać, zaczniesz korzystać z wpisanych kolekcji ! –
Zawsze należy zainicjować kolekcję z uniwersalnym typem
Set<String> myStringSet = new HashSet<String>();
przeciwnym razie otrzymasz ostrzeżenie
Type safety: The expression of type HashSet needs unchecked conversion
to conform to Set <String>.
Drugi jest najlepszym i najbezpieczniejszym sposobem, aby kontynuować.
Set<String> myStringSet = new HashSet();
skompiluje i poda ostrzeżenie ...uses unchecked or unsafe operations.
. Pojawia się on w Java 5 i nowszych wersjach, jeśli używasz kolekcji bez generycznych specyfikatorów typów (HashSet()
zamiast HashSet<String>()
).
Pominięcie specyfikatora rodzaju ogólnego uniemożliwi kompilatorowi sprawdzenie, czy używasz HashSet
w sposób bezpieczny dla typu, używając generycznych.
Sprawdź to pytanie i akceptowaną odpowiedź: http://stackoverflow.com/questions/4166966/what-is-the-point-of-the-diamond-operator-in-java-7 –
W Javie SE 7 (JUŻ TERAZ!) 'Set myStringSet = new HashSet <>();' –