- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个父类(super class),它带有带有 finalize() 方法的伸缩构造函数。为了防止子类忘记调用 super.finalize,我编写了一个终结器守护程序(EJ Item 7),就像这样。
public class Super {
public Super() {}
{
Object finalizerGuardian = new Object() {
@Override
protected void finalize() {
System.out.println("Finalizer guardian finalize");
Super.this.finalize();
}
};
}
protected void finalize() {
System.out.println("Super finalize");
}
}
这是一个示例子类 --
public class Sub extends Super {
public Sub() {}
protected void finalize() {
System.out.println("Sub finalize");
}
public static void main(String[] args)
throws InterruptedException {
if (1 == 1) {
Sub s1 = new Sub();
}
Runtime.getRuntime().gc();
Thread.sleep(10000);
}
}
当 s1 对象超出范围时,终结器监护人的 finalize() 被调用,我从子类的 finalize 方法中获取 SYSO,但从未从 super 的 finalize 中获取 SYSO。
我很困惑。我从根本上误解了什么吗?
免责声明:我意识到终结器是危险的并且不可取等。仍在尝试理解这里的问题。
最佳答案
有效的 Java 终结器守护程序应该自己执行必要的终结逻辑(例如,调用执行实际终结的 Super
的某些方法)而不是调用 finalize()
方法,因为在您的情况下 Super.this.finalize();
实际上从子类中调用了重写方法。
另请注意,finalizer guardian 应该是类的一个字段:
public class Super {
private final Object finalizerGuardian = new Object() {
@Override
protected void finalize() {
Super.this.doFinalize();
}
};
private void doFinalize() {
System.out.println("Super finalize");
}
}
关于Java finalizer guardian 好像不行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7041536/
我正在启动一个具有复杂权限结构的应用程序,这将不可避免地由用户自己管理。我在模型中有以下权限: class Meta: permissions = ( ('can_view', 'Vi
我想知道是否可以在没有用户模型的情况下使用 Guardian,以及如何使用它。 我只将 Phoenix 用于服务器、微型 API 和 channel 。我在浏览器中有一个带有 PouchDB 的数据库
谁能推荐一个使用 django-guardian 的好的开源应用程序?我在理解 API 方面没有问题,但我很想看到一个示例来了解实现最佳实践(数据库设计等) 最佳答案 如果您克隆 django-gua
我正在使用 django-guardian 来检查用户的对象权限。在我的特殊情况下,我扩展了用户模型。在我的 models.py 中,我扩展了这样的用户模型: enter image descript
我正在使用 django-guardian 来检查用户的对象权限。在我的特殊情况下,我扩展了用户模型。在我的 models.py 中,我扩展了这样的用户模型: enter image descript
尝试搜索监护人模式,但我找不到任何可以回答我问题的东西,所以我又来了。在我正在阅读的书中,作者使用了一行他称之为“监护人模式”的代码,但我并不真正理解它是如何工作的。这是示例,如果有人能向我解释一下,
我已按照 django-guardian 文档中的用户指南来设置 django-guardian。这使我能够控制某个组是否可以查看特定类(class)。这是 django-guardian 文档中的示
我有两个模型: class ContactGroup(models.Model): name = models.CharField(max_length=40) class Meta:
我有一个父类(super class),它带有带有 finalize() 方法的伸缩构造函数。为了防止子类忘记调用 super.finalize,我编写了一个终结器守护程序(EJ Item 7),就像
我已将 django-guardian 的行级权限添加到我的项目中。 从设置来看,似乎一切正常: 已创建监护人特定表(guardian_groupobjectpermission、guardian_u
我正在使用 django-guardian为了管理每个对象的权限。 对于给定的用户,我授予对一个对象的所有权限: joe = User.objects.get(username="joe") myta
根据Akka docs on the System Guardian , 如果顶级 Actor 抛出 Exception ,它将无限期地重新启动(有 2 个异常(exception) - 没有双关语)
所以我有来自 Guardian API 开放平台的 JSON 格式的数据,我想在 jquery 中解析它,目前我一直在尝试将结果显示到我的 HTML div 上。 数据格式如下:Guardian JS
我正在开发一个实现用户身份验证的网站(使用 Comeonin 和 Guardian)。 我正在实现电子邮件验证。我想我可以利用 Guardian 中的功能来使用 JWT token 生成 url。根据
我在从 The Guardian 的新闻 API 获取文章文本时遇到问题。我有一个类似这样的网址:http://content.guardianapis.com/search?section=tech
我正在创建一个应用程序,它从《卫报》获取新闻。该文档不清楚依赖关系。任何地方都没有这方面的信息。预先感谢您 https://github.com/matarrese/content-api-the-g
当我在 Django 中创建用户时,他没有权限: In [7]: u = User.objects.create(username='aoeu') In [12]: u.user_permission
我正在寻找一个简单的示例,说明如何以与 Guardian 应用程序(包括左侧图像)相同的方式在屏幕上显示数据,我从 php 页面中提取数据,如屏幕截图所示以下。我在互联网上找不到任何符合此描述的示例。
我目前正在对所有对象进行非常笨拙的循环,但这会变得很慢: videos = Video.objects.all() video_list = [] for video in videos: c
有 from guardian.shortcuts import get_objects_for_user 但是关于 from guardian.shortcuts import get_users_
我是一名优秀的程序员,十分优秀!