2010-02-16 14 views
6

.NET'te birden fazla türde var olabilecek bir "değer" olduğunda, bu türler arasında geçiş yapmak için kolayca bir TypeConverter kullanabilirim (para birimi türleri, xml verileri vs. nesne gösterimi, vb) . Java'da, bu durumun üstesinden gelmek için tercih edilen yolun ne olduğundan emin değilim. Java'da bir TypeConverter eşdeğeri var mı? Bir dönüştürmek için çalışıyorsanızVardır. NET TypeConverter eşdeğeri Java'da

List aList = new List(); 
aList.add("Hello World); 
String s = (String) aList.get(0); 

: Eğer dizeleri içeren bir Liste nesnesi .. Böyle listeden bir dize kapmak istiyorum varsa

cevap

2

.NET dünyasından bir kişi için kutudan çıkmadığı bir sürpriz olacak. Bunun nedeni, ilkel (int, long) vb. Gibi ilkel sarmalayıcılar (Tamsayı, Uzun vb.), Int gereksinim duyduğunuzda Integer'e otomatik kutulama (çünkü JDK 1.5'den).

Böylelikle, yetersiz Java geliştiricileri el ile bir şeyleri dönüştürüyoruz (yukarıda @Boolean tarafından verilen bazı örnekler) Ayrıca, bu işlemleri yaparken == operatörleri kullanmanın sonsuz sorunları. Örneğin: 127'ye kadar otomatik kutulu tamsayılar önbelleğe alınır.

public void testsimple() { 
    Integer a = 124, b = 124, c = 500, d= 500; 
    System.out.println(a == b); //prints true in JDK 1.6 
    System.out.println(c == d); //prints false in JDK 1.6 
} 

Çok fazla veri dönüşümü gerektiren çok büyük bir uygulama yazıyorsanız, kendi başınıza bir şeyler yazabilirsiniz. Spring'in "TypeConverter" arayüzü iyi bir başlangıç ​​olabilir.

bu bağlantıyı kullanın http://imagejdocu.tudor.lu/doku.php?id=howto:java:how_to_convert_data_type_x_into_type_y_in_java başın belaya interaktif UI tasarımcıları dize olarak değerlerini gösteren ve UI tasarımcı anlamıyor tiplerinin kullanıcı düzenlemesi görgü değerlerini bildirmek için izin kısmen .net ilave

0

Eh örneğin ... şeyleri typecasting yapabilirsiniz bir sayıya dize .. buna benzer bir şey yapacağını:

int i = 200; 
String s = "" + i; 
:

String aString = "200"; 
int i = Integer.Parse(aString); 

bunu yaparak bir dizeye bir tamsayı dönüştürürken hile 0

0

TypeConverter varsa.

Sanırım, TypeConverter veri bağlama tarafından da kullanılıyor.

Kendi yazılımınızda, derleme zamanında bildiğiniz türler arasında dönüştürme yapmak için TypeConverter kullanabiliyorsanız, bunun için oluşturulmuş birincil kullanım durumu değil, bir yan etkidir. Java “RAD” araçları desteklemeye çalıştı olmamıştı gibi

, bu VB6 etkin olduğunu UI geliştirme aynı tür izin verecek şekilde tasarlanmıştır bir dereceye kadar .net için TypeConverter ve PropertyDescriptors vb için aynı ihtiyacı olmamıştır.

İlgili konular