Soru enum.valueOf (Dize adı) Javadoc 1.5 ve 1.6'dan eksik


Bu muhtemelen aptalca bir soru, ama yöntemi kullanıyorum enum.valueOf(String name). Orada sorun yok, javadoc'u bu yöntem hakkında daha fazla bilgi edinmek için kontrol ettiğimde bunu bulamadım. İçin javadoc var valueOf(Class<T> enumType, String name) ama hiçbiri enum.valueOf(String name) (ki bu imzaya sahip bir metodun mevcut olmadığını öne sürecektir - ama açıkça anlaşılmaktadır).

Burada bir şeyi mi özlüyorum, yoksa bu API için javadoc'ta bir gözetim mi?

Teşekkürler


21
2018-03-21 11:40


Menşei




Cevaplar:


Enum.valueOf (String) yöntemi yoktur, ancak her enum bir var values() ve valueOf(String) Derleyici tarafından oluşturulan yöntem ve bunlar belgelenmiştir. Bunlar statik yöntemlerdir ve dolayısıyla bir süper sınıf veya arayüzde geçersiz kılınamaz veya tanımlanamazlar.

Enum e = Enum.valueOf(""); // this doesn't compile

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.State.html#values%28%29

http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.State.html#values%28%29

Java 5.0, 6 veya 7'de aynı.

Java 5.0 için http://docs.oracle.com/javase/specs/jls/se5.0/html/classes.html#8.9 (değerleri arayın) Java 7 için http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.9.2 @kapep tarafından sağlanmıştır


19
2018-03-21 11:55



docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.9.2 - kapex
@kapep Referans için teşekkür ederiz. Java 5.0 için bir tane bulamadım - Peter Lawrey
BTW - enum.valueOf (String name) yazdığımda, gerçek bir enum için kısayol olarak "enum" kullanıyordum. Bu somut olayda, enum, SourceMedia sınıfıydı ("Hazırda Bekletme Hareketi" başlıklı bir denemeden). Bu yöntemin, Enum için javadoc'ta görünmemesi garip görünüyor. - Kimberley Coburn
Ve teşekkürler! (Bu benim ilk yorumumdu, ama kayboldu;) - Kimberley Coburn
Enum'da değillerdir, çünkü Enum bu yöntemlere sahip değildir ve bunları belgelemek için basit bir yol değildir. Sınıf açıklamasına eklenebilir. - Peter Lawrey


Kaputun altında, enum.valueOf(String name) aslında arıyor Enum.valueOf(Class<T> enumType, String name)


9
2018-03-21 21:40



Böyle bir şey olmadığını merak ediyordum. Teşekkürler. - Kimberley Coburn