当前位置: 首页 > 面试题库 >

有人可以解释一下这个Java代码

常英资
2023-03-14
问题内容

我只是在android上开始,而我的java很生锈。我不记得曾经见过像这样嵌套在另一个函数中的函数。有人可以向我确切解释final的作用,并解释为什么您要在另一个函数中嵌套这样的功能吗?

private final Handler handler = new Handler() {
        @Override
        public void handleMessage(final Message msg) {
            Log.v(Constants.LOGTAG, " " + ReviewList.CLASSTAG + " worker thread done, setup ReviewAdapter");
            progressDialog.dismiss();
            if ((reviews == null) || (reviews.size() == 0)) {
                empty.setText("No Data");
            } else {
                reviewAdapter = new ReviewAdapter(ReviewList.this, reviews);
                setListAdapter(reviewAdapter);
            }
        }
    };

问题答案:
  • 这是一个匿名类。实际发生的情况是Handler正在使用重写的handleMessage函数创建 的子类。

关于匿名类的最优雅的事情之一是,它们使您可以在需要的地方准确定义单发类。此外,匿名类具有简洁的语法,可减少代码中的混乱情况。

  • 您还问“有人可以确切地向我解释什么final ”。一个很好的解释可以在这里找到。

对于您的示例,final关键字使任何人无法分配新实例,或者使变量“ handler”的实例为空,这意味着我无法在该示例代码段handler = null;handler = new Handler() { ... }之后编写该行。



 类似资料:
  • 我是Hibernate和JPA的新手,我对这个注释有问题。有人能简单地解释一下这个注释到底在做什么吗?因为在这种情况下,文档对我来说很难理解。 编辑我明白什么是持久上下文,但在代码中,我有这样的例子: 我对@PerustenceContext做什么有问题。抱歉,也许我没有具体说明。

  • 我这里有一些关于Java的练习问题。我们应该在不使用编译器的情况下确定答案。 参考以下方法: 调用product(6)时的输出是什么? D)48 E)70 根据答案,正确的输出是48。我真的不明白为什么这是真的。6不符合基本情况,所以转到else语句。那么,乘积(6-2)=乘积(4),乘积(2)得到乘积(0),乘积(2)得到乘积(0),得到6*4,4*2,2*0,0*0。但那是32,不是48?是不

  • 问题内容: 使用带有x和y数据的pcolormesh绘制数组会删除数据行 为了说明我的意思,请参见以下内容: 产生以下5x5网格: 但是,如果我想为这样的数据定义x和y轴,则pcolormesh将创建一个4x4网格,顶部和右侧的行会丢失… 为了获得完整的5x5图,我必须做 这只是pcolormesh的怪癖吗?还是有人可以解释为什么pcolormesh如此行为? 问题答案: 您看到的行为是预期的。该

  • 问题内容: 我看到人们通常是这样导入Pygame的: 我不明白第二行是什么。如果我们已经导入了整个Pygame,为什么要导入?Pygame导入后是否已经不包含它? 问题答案: 将pygame模块导入“ pygame”命名空间。 将pygame.locals中的所有名称复制到当前名称空间中。这不是必需的,但是可以节省您的键入时间。

  • 问题内容: 为什么在Python解释器中会发生以下情况? 为什么不呢? 问题答案: 那是因为不能以二进制浮点表示形式精确表示。如果你试试 Python会做出响应,因为它只能打印出一定的精度,但是已经存在一个小的舍入错误。也会发生同样的情况,但是当您发出 然后四舍五入误差并累积。另请注意:

  • 问题内容: 抱歉,这是一个非常广泛的问题。 以下代码是网络上某些内容的片段。我感兴趣的关键是从@protected开始的行- 我想知道这是做什么的以及它是如何做到的?在执行do_upload_ajax函数之前,似乎正在检查是否已登录有效用户。这似乎是进行用户身份验证的一种非常有效的方法。我不了解此@函数的机制- 有人可以引导我正确的方向来解释如何在现实世界中实现它吗?Python 3请回答。谢谢。