Java Android ile 7 dil özellikleri
Eğer herkes Android ile Java 7 yeni dil özelliklerini kullanmaya çalıştı mı? Android tükürür Java ve dex için döner bayt kodu okur biliyorum. Benim sorum Java 7 Java anlayabilirim? yani sanırım
CEVAP
Java 7 küçük bir parçası kesinlikle (not: sadece test var 4.1 Android ile kullanılabilir.
Öncelikle, sadece derleyici 1.5 ve 1.6 Java it is hard-coded uyumlu olduğundan Eclipse ADT kullanılamadı. ADT yeniden derlemek olabilir ama bu yana birlikte tüm Android yeniden yapmak için basit bir yolu yoktur hiçbir buluyorum.
Ama Eclipse kullanmaya gerek yok. Örneğin, Android Studio 0.3.2, IntelliJ IDEA CE ve javac tabanlı diğer IDE Android için derleme destekler . ben^>ve8 Java için bile uygun ayarlayabilirsiniz:
- Proje Yapı Öğelerini (2. bölmesi modülü seç) Word ekranında Modülleri ("7.0 - Elmas, KOL, çok yakalamak, vb.") seçin dosya seçeneğine Dil düzeyi seçeneğine
Bu sadece Java 7 sağlardil özellikleripek iyileşme yarısı da kütüphaneden geldiğinden beri hiçbir şey yararlanabilir. Kullanabilirsin özellikleri kitaplığına bağımlı olanlar
- Elmas operatörü (
<>
) - String anahtarı
- Birden çok catch (
catch (Exc1 | Exc2 e)
) - Dizi sabitleri (
1_234_567
) alt çizgi - İkili rakamları (
0b1110111
)
Ve bu özellikler kullanılamazhenüz:
- Mevcut olmayan arayüz "java.gerektirdiğinden *4--*kaynakları deyimi — lang."(Bu halka 4.4) kullanılabilir . AutoCloseable
- @SafeVarargs ek açıklama — "java.çünkü lang.SafeVarargs" yok
... "henüz" :) bu çıkıyor, ancak Android kütüphane hedefleme için 1.6, Android kaynak içermiyor arayüzleri AutoCloseable ve geleneksel arayüzleri gibi Closeable mu tat AutoCloseable (SafeVarargs gerçekten eksik olsa da). Yansıma yoluyla varlığını teyit edebiliriz. Sadece Javadoc "android.jar" onlara dahil değil. bu neden oldu @hide
tag, çünkü gizli
Zaten varolan bir soru varHow do I build the Android SDK with hidden and internal APIs available?bu yöntemler geri almak için. Sadece gerekiyordeğiştirinmevcut "" bizim özel bir geçerli Platformun referans, Java 7 API birçok kullanılabilir (prosedürü Eclipse. buna benzer olacak android.jar Proje Öğelerini SDK Yapısını Kontrol Etmek.)
Ek, (sadece) aşağıdaki Java 7 AutoCloseablekütüphane bulunmaktadırayrıca ortaya çıkardı
- Özel durum zincirleme ConcurrentModificationException, LinkageError ve AssertionError yapıcılar
- Statik .() karşılaştırın ilkel yöntemleri: Boolean.() karşılaştırın, Bayt.() karşılaştırın, Kısa.() karşılaştırın, Karakter.() karşılaştırın, Tamsayı.() karşılaştırın, Uzun.() karşılaştırın.
- Currency: .() getAvailableCurrencies, .() getDisplayName (amaolmadan.() getNumericCode)
- BitSet: .() previousSetBit, .() previousClearBit, .() değerini, .() toLongArray, .() toByteArray
- Collections: .() emptyEnumeration, .() emptyİterator, .() emptyListİterator
- AutoCloseable
- Throwable: .() addSuppressed, .() getSuppressed ve 4-argüman yapıcı
- Character: .() karşılaştırın .() isSurrogate, .() getName, .() highSurrogate, .() lowSurrogate, .() isBmpCodePoint (amaolmadan.() isAlphabetic .() isİdeographic)
- Sistem: .() lineSeparator (kaçak?)
- java.lang.reflect.Modifier: .() classModifiers, .() constructorModifiers, .() fieldModifiers, .() interfaceModifiers, .() methodModifiers
- NetworkInterface: .() getİndex, .() getByİndex
- InetSocketAddress: .() getHostString
- 21**: .() getLoopbackAddress
- Logger: .() getGlobal
- ConcurrentLinkedDeque
- AbstractQueuedSynchronizer: .() hasQueuedPredecessors
- DeflaterOutputStream: 3 kurucular"". syncFlush ile
- Deflater: .NO_FLUSH, .SYNC_FLUSH, .FULL_FLUSH, .() deflate 4 bağımsız değişken
Temelde hepsi bu. Özellikle, NİO 2.0 yok ve Diziler.asList hala @SafeVarargs değildir.
Nasıl HttpResponse zaman aşımı ayarlam...
Android geliştirme için Java 8 kullanm...
Eclipse için Android geliştirme: R.jav...
Kimse kriterler (kod & sonuçları) Andr...
java.lang.OutOfMemoryError: VM bütçemi...