gpt4 book ai didi

java - 为什么我不能在 Java 的函数中创建对象?

转载 作者:行者123 更新时间:2023-12-01 07:50:33 24 4
gpt4 key购买 nike

代码A运行良好,我认为代码B可以正常运行,但实际上,代码B不能正常运行。为什么?

为什么我无法在函数中创建对象 - private void SetField(Context mContext,MAtt aField,String name)

代码A

public class MURLPar {

public MAtt diskcount=new MAtt();
public MAtt diskindex=new MAtt();


public MURLPar(Context mContext){
SetField(mContext,diskcount,"Pardiskcount");
SetField(mContext,diskindex,"Pardiskindex");
}


public class MAtt {
public String name;
public String value;
}


private void SetField(Context mContext,MAtt aField,String name){
int id = mContext.getResources().getIdentifier(name, "string", mContext.getPackageName());
aField.name=mContext.getString(id);
}
}

代码B

public class MURLPar {

public MAtt diskcount;
public MAtt diskindex;


public MURLPar(Context mContext){
SetField(mContext,diskcount,"Pardiskcount");
SetField(mContext,diskindex,"Pardiskindex");
}


public class MAtt {
public String name;
public String value;
}


private void SetField(Context mContext,MAtt aField,String name){
aField=new MAtt(); //Create object
int id = mContext.getResources().getIdentifier(name, "string", mContext.getPackageName());
aField.name=mContext.getString(id);
}
}

最佳答案

因为当您使用命令aField=new MAtt();时,aField会获取新的内存地址

因此,diskcountdiskindex 的内存地址仍未初始化。

更多信息请查看:https://stackoverflow.com/a/73021/3923800

关于java - 为什么我不能在 Java 的函数中创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38631939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com