2016-03-26 40 views
-1
public <T> void addToRequestQueue(Request<T> req, String tag) { 
    req.setTag(TextUtils.isEmpty(tag) ? TAG : tag); 
    getRequestQueue().add(req); 
} 

Bu ikinci satırda ne yapılır? Bunun ne olduğunu anlayamıyorum (tag)? TAG: tag. İşte İkinci satırda neler yapıldığını anlamak için yardıma ihtiyacınız var mı?

tam kod burada

{ 
import android.app.Application; 
import android.text.TextUtils; 

import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.toolbox.Volley; 

public class AppController extends Application { 

    public static final String TAG = AppController.class.getSimpleName(); 

    private RequestQueue mRequestQueue; 

    private static AppController mInstance; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     mInstance = this; 
    } 

    public static synchronized AppController getInstance() { 
     return mInstance; 
    } 

    public RequestQueue getRequestQueue() { 
     if (mRequestQueue == null) { 
      mRequestQueue = Volley.newRequestQueue(getApplicationContext()); 
     } 

     return mRequestQueue; 
    } 

    public <T> void addToRequestQueue(Request<T> req, String tag) { 
     req.setTag(TextUtils.isEmpty(tag) ? TAG : tag); 
     getRequestQueue().add(req); 
    } 

    public <T> void addToRequestQueue(Request<T> req) { 
     req.setTag(TAG); 
     getRequestQueue().add(req); 
    } 

    public void cancelPendingRequests(Object tag) { 
     if (mRequestQueue != null) { 
      mRequestQueue.cancelAll(tag); 
     } 
    } 
} 

olduğunu tam kod artık o bu yöntem, ikinci satırda yapılır ne olursa

+0

nereden bileceğiz? Bu senin kodun. Sınıf İsteklerinin bazı örnek değişkenlerine benziyor. Eğer yeterince genel ise lütfen tam bağlamı sağlayın. –

+0

?: Operatörün nasıl çalıştığını mı soruyorsunuz? –

+0

evet operatörün nasıl çalıştığını ve bu yöntemin ikinci satırının kodunun ne yaptığını –

cevap

0

TAG tip bazı sabit olmalıdır söyle ve açıklamak için lütfen

public static final String TAG = "<default-tag>"; 

buradaki fikir etiketlemek geçerli: böyle bir şey - varsayılan her ne etiketinin değerini temsil eden String r, ikinci parametre olarak geçirilen değer ile isteme, yani String tag.?:, if/else bildirimini kullanmadan denetimi uygulamak için kullanılır.

tag dizesi arandığında addToRequestQueue aramasının boş olması durumunda, yöntem TAG değerini kullanır. Başka bir deyişle, ikinci satırda

public static final String TAG = AppController.class.getSimpleName(); 

public <T> void addToRequestQueue(Request<T> req, String tag) { 
    req.setTag("is tag empty?" yes, so use `TAG` : no, so use `tag`); 
    getRequestQueue().add(req); 
} 

ait

+0

Lütfen bunun üçüncül veya satır içi işleci olduğunu ve bunu açıklayan bir bağlantı olduğunu da ekleyiniz. –

0

Çeviri:

if(tag.isEmpty()){ 
    res.setTag(TAG) 

} else { 
    res.setTag(tag) 

} 
İlgili konular