java - 我可以从构造函数主体调用静态方法来获取实例而不是调用 Super 吗?

标签 java android android-layout listview oop

我想扩展 ArrayAdapter 但调用

ArrayAdapter.createFromResource(context,textArrayResId,textViewResId);

而不是

super(context,textArrayResId,textViewResId)

在 myArrayAdapter 构造函数内,但我总是收到 android.widget.ArrayAdapter 中没有可用的默认构造函数错误。

看起来必须调用 super 是必须的,所以当我使用它时,代码编译得很好。我要求做的事情可能吗?

public class myArrayAdapter<CharSequence> extends ArrayAdapter {

    public myArrayAdapter(Context context, int textArrayResId, int textViewResId) {
       // super(context,textArrayResId,textViewResId);
        ArrayAdapter.createFromResource(context,textArrayResId,textViewResId);

    }
}

最佳答案

在此场景中必须显式调用父类构造函数。您可以为此目的创建静态工厂方法。

What are static factory methods?

关于java - 我可以从构造函数主体调用静态方法来获取实例而不是调用 Super 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39975857/

相关文章:

java - 在数独中寻找零

java - Class.forName 上的 ClassNotFoundException ("com.mysql.jdbc.Driver");

android - 如何从Android发送RTP视频数据包到服务器?有图书馆吗?请建议

android - 在网格布局中调整 imageViews 的大小

android - 使用 Firebase 通过电子邮件发送用户密码

android - 制作静态背景图片

java - 从按钮重定向 JSF 页面

java - 无法删除属性java

java - 将沉浸式模式与对话框一起使用时,导航。栏重新出现并调整我的布局

android - 如何在 viewpager 中添加一个 ListView ?