java - 焊接实例<>和垃圾收集器

标签 java garbage-collection jboss-weld

我的问题非常简单:如何避免 JBoss Weld (1.1.5) 保留对 Instance 生成的对象的引用?通常,以下代码:

class B{}

class A {
  @Inject private Instance<B> instanceB;

  public B produce(){
    return instanceB.get();
}

如果我调用 A#product(),那么在 A 对象被垃圾回收之前,B 对象不会被垃圾回收。

是否有任何解决方法可以使 B 对象被垃圾收集,而不对 A 对象进行垃圾收集?

最佳答案

如果您显式地将实例 B 设为 null,那么它将被 Gc 处理

关于java - 焊接实例<>和垃圾收集器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20005177/

相关文章:

java - WELD-000072 声明钝化作用域的托管 bean 必须具有钝化能力

jakarta-ee - 带有 unpackWARs ="false"的 Tomcat 无法部署基于 CDI Weld 的应用程序

java - 使用 Wicket 从 super /抽象类调用方法时焊接注入(inject)失败

java - 如何从基类实例中找出子类?

Java - 这个对象什么时候卸载?

java - 变量变为字段、栈变为堆的过程是怎样的?

java - G1GC 非常高的 GC 计数和 CPU,非常频繁的 GC 会降低性能

java - 内存不足错误: GC overhead limit exceeded api 19

java - 使用Camel Main类时如何设置PropertiesComponent?

java - 在 JUnit 测试用例中找不到测试方法