Java öğreniyorum ve ArrayList
ve RandomGenerator
ile ilgili bir sorun yaşıyorum.
catalogueadında,
item` adında başka bir sınıftan oluşturulan nesnelerin bir dizi listesine sahip bir nesnem var.
Listedeki item
nesnelerinden birinin tüm bilgilerini döndüren catalogue
içinde bir metoda ihtiyacım var.
Öğenin rastgele seçilmesi gerekir.
import java.util.ArrayList;
import java.util.Random;
public class Catalogue
{
private Random randomGenerator;
private ArrayList<Item> catalogue;
public Catalogue ()
{
catalogue = new ArrayList<Item>();
}
public Item anyItem()
{
int index = randomGenerator.nextInt(catalogue.size());
return catalogue.get(index);
System.out.println("Managers choice this week" + anyItem + "our recommendation to you");
}
Derlemeye çalıştığımda System.out.println
satırına işaret eden bir hata alıyorum...
'cannot find symbol variable anyItem'
anyItembir yöntemdir ve
System.out.println` çağrısı return deyiminizden sonradır, bu nedenle ulaşılamaz olduğu için zaten derlenmeyecektir.
Şöyle yeniden yazmak isteyebilirsin:
import java.util.ArrayList;
import java.util.Random;
public class Catalogue
{
private Random randomGenerator;
private ArrayList<Item> catalogue;
public Catalogue()
{
catalogue = new ArrayList<Item>();
randomGenerator = new Random();
}
public Item anyItem()
{
int index = randomGenerator.nextInt(catalogue.size());
Item item = catalogue.get(index);
System.out.println("Managers choice this week" + item + "our recommendation to you");
return item;
}
}
yazdırma işleminiz geri döndükten sonra gelir -- bu ifadeye asla ulaşamazsınız. Ayrıca, anyItem öğesini bir değişken olarak bildirmemişsiniz. Şunu isteyebilirsiniz
public Item anyItem()
{
int index = randomGenerator.nextInt(catalogue.size());
Item randomItem = catalogue.get(index);
System.out.println("Managers choice this week" + randomItem.toString() + "our recommendation to you");
return randomItem;
}
toString kısmı sadece hızlı bir işlemdir - bu amaç için kullanışlı bir String döndüren bir yöntem 'getItemDescription' eklemek isteyebilirsiniz...
system.out.println
mesajını return
mesajının altından şu şekilde kaldırmalısınız:
public Item anyItem()
{
randomGenerator = new Random();
int index = randomGenerator.nextInt(catalogue.size());
Item it = catalogue.get(index);
System.out.println("Managers choice this week" + it + "our recommendation to you");
return it;
}
return
deyimi temel olarak fonksiyonun artık sona ereceğini söyler. return
deyiminin ötesinde yer alan ve onun kapsamına giren herhangi bir şey, deneyimlediğiniz davranışa neden olacaktır