根据我的理解,如果没有其他东西"指向"该对象,Java中的垃圾收集会清除一些对象.
我的问题是,如果我们有这样的事情会发生什么:
class Node {
public object value;
public Node next;
public Node(object o, Node n) { value = 0; next = n;}
}
//...some code
{
Node a = new Node("a", null),
b = new Node("b", a),
c = new Node("c", b);
a.next = c;
} //end of scope
//...other code
Run Code Online (Sandbox Code Playgroud)
a,b和c应该是垃圾收集,但它们都被其他对象引用.
Java垃圾收集如何处理这个问题?(或者它只是一个内存消耗?)
我有一个ViewPager作为第一个项目RecyclerView.我想设置FragmentStatePagerAdapter到方法viewpager内部onBindViewHolder().但我不能打电话getsupportfragmentmanager().请帮助!! 这是我的代码:
public class CustomListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private List<RowItem> rowItemList;
private final int VIEW_TYPE_CUSTOM = 0;
private final int VIEW_TYPE_NORMAL = 1;
NewPagerAdapter mCustomPagerAdapter;
public CustomListAdapter(Context context, List<RowItem> rowItemList) {
this.context = context;
this.rowItemList = rowItemList;
}
@Override
public int getItemViewType(int position) {
if (position == 0)
return VIEW_TYPE_CUSTOM;
else
return VIEW_TYPE_NORMAL;
}
@Override
public int getItemCount() {
return rowItemList.size()+1;
}
@Override
public void …Run Code Online (Sandbox Code Playgroud) 我需要帮助所以我有一个片段,它有一个recycleView,在recycleView里面有一个按钮.
单击后按钮必须打开已经在基本片段中声明的对话框,所以我只调用"openDialog(DIALOG_CHECK);"
现在我如何在我的适配器上调用该对话框我已经在片段中创建了一个方法并从适配器调用它并发出错误"Java lang null pointer"
这是我的代码:
DeliveryFragment delivFrag = new DeliveryFragment();
holder.editButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
delivFrag.doEdit();
}
});
Run Code Online (Sandbox Code Playgroud)
在片段中
public void doEdit(){
openDialog(DIALOG_EDIT_ITEM);
}
Run Code Online (Sandbox Code Playgroud)