1. 程式人生 > >android中泛型方法的用法和作用

android中泛型方法的用法和作用

舉個例子

首先我的activity中 

@Route(path = "/datainit/DataInitActivity")
class DataInitActivity: BaseActivity(){
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.act_datainit)
        ActivityUtils.replaceFragmentInActivity(
            supportFragmentManager,
            findOrCreateViewFragment(),
            R.id.contentFrame)
    }

/*
 ** 此方法是為了初始化fragment展示fragement
 */
 ActivityUtils.replaceFragmentInActivity(
            supportFragmentManager,
            findOrCreateViewFragment(),
            R.id.contentFrame)

然後在我的activity工具類裡

public class ActivityUtils {
    public static void replaceFragmentInActivity(@NonNull FragmentManager fragmentManager,@NonNull Fragment fragment, int frameId) {
        Utils.checkNotNull(fragmentManager);
        Utils.checkNotNull(fragment);
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.replace(frameId, fragment);
        transaction.commit();
    }

然後在我的工具類Utils中呼叫了另一個 Utils.checkNotNull(obj)方法,是為了判斷是否為空。

(此方法就是重點,我們用的是泛型方法)

泛型方法定義:訪問許可權 +<泛型標示>+泛型標示 方法名稱(泛型標示 引數名稱 用泛型方法是為了可以接受任意型別,然後返回相應型別。

public static <T> T checkNotNull(T obj) {
    if (obj == null) {
        throw new NullPointerException();
    }
    return obj;
}