如何在Kotlin中声明原始类型?
在Java中,我可以声明这一点
private List a; //onCreate a = new ArrayList()
但在Kotlin它显示错误,这迫使我具体的类型
private List<String> a
有时我不想提供一个类型(我不需要),但它显示Kotlin中的错误例如在Java中
public abstract class BaseActivity<T extends ViewDataBinding> extends AppCompatActivity { //something } public abstract class BaseFragment { private BaseActivity activity; //something } //in kotkin I can't write lateinit var activity: BaseAtivity //show error here (I have to specific a type but this is the base class and I do not want to specific a type here). I just want a reference of BaseActivity @Override public void onAttach(Context context) { super.onAttach(context); if (context instanceof BaseActivity) { //good in java but show error //in kotlin because I have to //specific a type like BaseAtivity<something> BaseActivity activity = (BaseActivity) context; this.mActivity = activity; activity.onFragmentAttached(); } }
我可以在Kotlin中写些什么来在java中实现相同的代码
你可以使用星形投影
例如
private List<*> a
从文档中引用:“Java的原始类型转换为星形投影, List
变成List<*>
!,即List<out Any?>
!
因此,您可以使用星号投影,如<*>
。