2016-03-20 23 views
0

Böyle yöntemi vardır:Yöntemdeki() yönteminin parametreler aldığı bir durumu nasıl ele alırım?

public void rentBook(ArrayList<book> list, Book book) 
{ 
    if(!list.isEmpty()) 
    { 


     list.remove(book); 
     book.setAvailable(false); 
     Biblioteka.listOfRented.add(book); 

    }   

    else 
     System.out.println("No any books left"); 
} 

ve ben() vadede bu yöntemi çağırmak için Konu yöntemini istiyorum. Ben kütüphane sistemi yapıyorum ve ben (iş parçacığı) kitap kiralamak yapmak istiyorum yapmak istiyorum (method rentbook) Ben parametreleri doğru bir şekilde nasıl geçebilirim hiçbir fikrim yok. Herhangi bir ipucu :/? yorumlarda bahsedildiği gibi

+1

Sen 'Thread' en' run' yöntem çerçevesinde kullanılabilir olması parametrelerine , Örneğin Bunları yapıcı parametresi olarak geçirirsiniz ve bunları alanlara kaydedersiniz, bunları içeren kapsamdaki "final" yerel değişkenleri olarak tanımlayın. –

+0

Hangi parametreleri geçirmeniz gerekir? –

+0

Yöntemde - kitapların bir listesi ve bu listenin ikinci kitabı - hangi kitabın kiralamak istediği percon coud pick'e benziyor. Yani yapıcıdan geçmekten başka bir yolu yok mu? –

cevap

1

, burada iki (derleme, koşma) yol var bunu yapabilirsiniz:

public void methodUsingFinals() { 
    final ArrayList<book> list = new ArrayList<>(); 
    final Book currentBook = new Book(); 

    new Thread(new Runnable() { 

     @Override 
     public void run() { 
      rentBook(list, currentBook); 
     } 
    }); 
} 

public void methodAcceptingValues(ArrayList<book> list, Book currentBook) { 
    new Thread(new Runnable() { 

     @Override 
     public void run() { 
      rentBook(list, currentBook); 
     } 
    }); 
} 
+0

Çok teşekkür ederim Andrew :) –

+0

Umut etti. http://stackoverflow.com/help/someone-answers –

İlgili konular