在同一个方法中调用相同的方法

时间:2017-02-22 14:55:18

标签: java methods

这是一个非常愚蠢但很简单的问题。我只是想用Java来解释你是否可以调用方法,让我们说方法:

get(x)

方法内部:

get(x)

如果可以的话,我甚至不确定你会怎么做。但是,我相信你不能在同一个方法中调用一个方法。我只想对此事做一些澄清。谢谢!

1 个答案:

答案 0 :(得分:3)

调用自身的方法是public class ServicesAdapter extends RecyclerView.Adapter<ServicesAdapter.MyViewHolder>{ private Context mContext; private List<Service> serviceList; public ServicesAdapter(Context mContext, List<Service> serviceList) { this.mContext = mContext; this.serviceList = serviceList; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.service_card, parent, false); return new MyViewHolder(itemView); } @Override public void onBindViewHolder(final MyViewHolder holder, int position) { holder.onBind(); } @Override public int getItemCount() { return serviceList.size(); } public class MyViewHolder extends RecyclerView.ViewHolder { public TextView title; public MyViewHolder(View view) { super(view); title = (TextView) view.findViewById(R.id.title); } public void onBind() { //do what ever you want here for setting data String ttileVal = serviceList.get(getAdapterPosition()).getName(); title.setText(titleVal); if (titleVal.equals(ADD_NEW_ITEM_TYPE)) { title.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent redirect = new Intent(mContext, ListServices.class); mContext.startActivity(redirect); } });//end onclicklistener } } } } 。每个metbod调用都是使用堆栈完成的。调用方法时,其局部变量保存在堆栈中。方法方法调用堆栈中的每个方法都支持每个方法调用。

如果方法A调用方法B,则方法A的状态保存在堆栈中,一旦方法B的执行完成,方法A将继续执行其从堆栈中保存的局部变量值。

同样的概念也用于递归。这里我们同时使用A和B两种方法。方法的每个调用都可以被认为是新的方法调用,并且调用方法的局部变量被保存在堆栈中。一旦被调用方法执行,控制就会返回到调用方法并继续执行。

通常递归包含

  1. 每个方法调用将基于的方法参数。方法的每个被调用者实例都将修改参数并使用参数的新值调用该方法。

  2. 基本情况(参数的某个值),当到达递归调用时,它被破坏,控制返回到方法的被调用者实例。

  3. 参数的选项数量。 (如果参数是数字等,这可能是一个类似于参数的增量或减少的系列参数,除以定义的数字等等)

  4. 使用新参数递归调用

  5. 回溯,根据需要重置参数。