찾다

 >  Q&A  >  본문

java - 能不能直接通过反射拿到对象,实现注解回收对象

这样子是新创建了
Subscription subscription= (Subscription) field.getType().newInstance();
但是我不想新建

field.get()这个方法又有什么用

这样不行 Subscription subscription=(Subscription) field;不能转类型

这样能转类型,但是直接就报错了field不能转成Subscription
Object obj=(Object)field;
Subscription subscription=(Subscription) obj;

只是想注解,然后在基类的onDestory销毁类中注解的Subscription

不知道我的描述是否正确,如有不准确的地方请指正,谢谢,注解和反射也没有经常用

阿神阿神2846일 전658

모든 응답(1)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-18 10:36:49

    제 이해가 맞다면 질문자는 onDestory의 힙 메모리에 있는 객체 인스턴스를 가져오길 원한다는 것입니다. 그렇다면 Unsafe 가능할 겁니다. 하지만 힙에 저장된 객체 인스턴스에 참조가 없으면 다음 GC에서 재활용되므로 이렇게 할 필요가 없습니다.

    Unsafe은 Java가 메모리를 직접 조작할 수 있도록 하는 백도어이며 플랫폼 독립적이지 않으며 매우 안전하지 않습니다. 메모리를 관리하기 위한 GC가 있다면 꼭 Unsafe만 사용할 필요는 없습니다.

    회신하다
    0
  • 취소회신하다