【问题标题】:Calling an integer to a method cast in a private void将整数调用到私有 void 中的方法
【发布时间】:2011-05-14 06:11:03
【问题描述】:

我在一个班级,使用两种不同的方法。

我有一种方法:

private void detect();
    int facesFound = detector.findFaces(bitmap565, faces);

detector、bitmap565 和 faces 都是在同一个方法中定义的。

在另一种方法中,我想调用facesFound的值。

所以:

private void crop(){
if (facesFound > 1){

}

我的问题是,我无法从该方法访问该整数,因为它是在本地强制转换的。更改代码以调用它的最佳方法是什么?

编辑:添加方法:

private final View.OnClickListener btnClick = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
   case R.id.action_button:
        crop();

你是说在我的类的顶部声明一个整数,它被定义为通过我的新私有 int detect() 方法传回整数?

【问题讨论】:

  • facesFound 设为成员变量是否合乎逻辑,您将通过detect 设置它?
  • +1,我同意。那将是合乎逻辑的选择。
  • 您能详细说明一下吗?抱歉,我对此很陌生。
  • 我认为你的意思是 facesFound 在本地声明而不是“本地强制转换”。
  • 对,它是一个在我的detect()中声明的整数;方法

标签: android methods integer call


【解决方案1】:

detect()crop() 更改为:

private int detect()
{
    return detector.findFaces(bitmap565, faces);
}

private void crop(int numberOfFacesFound)
{
    if(numberOfFacesFound > 1)
    {

    }
}

那么,无论您从哪里拨打crop()

int numberOfFacesFound = detect();
crop(numberOfFacesFound);

【讨论】:

  • 如果我在单独的私有方法中调用crop 作为带有switch 语句的onClickListener 怎么办?
  • 这就是你可以拨打detect()的地方。如果由于某种原因你不能这样做,你可以在类中声明一个私有字段来保存detect() 返回的值,然后你可以将其传递给crop(int)
  • 在我的私人按钮方法中编辑...仍然没有得到你的评论,但我肯定得到你的答案;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2020-12-03
  • 1970-01-01
相关资源
最近更新 更多