Java:public static newInstance()

时间:2014-02-22 07:03:51

标签: java android

有人可以解释这段代码的作用。例如,第二个声明是做什么的?即public static AlertDialogFragment newInstance()在这里:

public static class AlertDialogFragment extends DialogFragment {

    public static AlertDialogFragment newInstance() {
        return new AlertDialogFragment();
    }

3 个答案:

答案 0 :(得分:2)

在android中,当你的类扩展Fragment时,它需要一个没有参数的构造函数(或根本没有构造函数),但是如果你想在创建它时为片段的每个对象设置一些东西,你可以做以下事实:

public static class AlertDialogFragment extends DialogFragment {
    private int value=0;
    public static AlertDialogFragment newInstance(int value) {
        AlertDialogFragment instance=new AlertDialogFragment();
        instance.value=value;
        return instance;
    }
}

现在通过调用

获取AlertDialogFragment对象
AlertDialogFragment fragment=AlertDialogFragment.newInstance(10);

在你的情况下,newInstance方法没有取得多大成就。

答案 1 :(得分:1)

只需创建AlertDialogFragment的新实例并返回。

通常我们创建像

这样的instnace
AlertDialogFragment adf = new AlertDialogFragment();

在你的情况下

 AlertDialogFragment adf = AlertDialogFragment.newInstance();

看,没有区别。

答案 2 :(得分:0)

newInstanse()是java.lang.Class的一个方法,它将创建指定的类类型的新实例。它将简单地调用默认构造函数,类似于我们调用时的操作,

 Class instance = new Class();

它的文档说:

java.lang.Class.newInstance()创建此Class对象表示的类的新实例。该类实例化为具有空参数列表的新表达式。如果尚未初始化,则初始化该类。

Source.