22 Mart 2011, Salı
Dizi başlatma bildiriminde değilken sözdizimi
Yazabilirim:
AClass[] array = {object1, object2}
Ayrıca yazabilirim:
AClass[] array = new AClass[2];
...
array[0] = object1;
array[1] = object2;
ama yazamıyorum:
AClass[] array;
...
array = {object1, object2};
Neden bu Java tarafından engellendi mi?
Bu geçici bir çözüm bulmak için nasıl biliyorum, ama zaman zaman daha basit olurdu.
Örneğin:
public void selectedPointsToMove(cpVect coord) {
if (tab == null) {
if (arePointsClose(coord, point1, 10)) {
cpVect[] tempTab = {point1};
tab = tempTab;
} else if (arePointsClose(point2, coord, 10)) {
cpVect[] tempTab = {point2};
tab = tempTab;
} else {
cpVect[] tempTab = {point1,point2};
tab = tempTab;
}
}
}
CEVAP
22 Mart 2011, Salı
Neden bu Java tarafından engellendi mi?
Java tasarımcıları sormanız gerekiyor. Kısıtlama için bazı ince gramer sebep olabilir. Java değildi / dizi yaratılış bazı 1.0, ve (IIRC) Java 1.1 eklenen not.
"Neden" manevi ... kısıtlama yok ve bununla yaşamak zorundasın. ama
Bu geçici bir çözüm bulmak için nasıl biliyorum, ama zaman zaman daha basit olurdu.
Bu yazabilirsiniz:
AClass[] array;
...
array = new AClass[]{object1, object2};
Bunu Paylaş:
Olası C# dizi başlatma sözdizimi...
başlatma C sınıfı bir başlatıcı olarak...
Bir dict başlatma için tercih edilen s...
Sözdizimi, iki boyutlu bir dizi oluştu...
Nesne başlatma sözdizimi...