Home > Blogs > VMware vFabric Blog


Using AspectJ for Accessing Private Members without Reflection

During development of Insight plugins we sometimes come across the need to access a private member of some 3rd party library.

The common approach for this is to use reflection:

While this is a widely accepted and simple approach, we searched for a way to improve this, mainly due to performance concerns as we try to maintain a very low overhead for our code agent.

Following is an alternative way we came up with for doing this with AspectJ.

The main idea is to use a mixin aspect (using inter-type declarations) that introduces a getter for the private member to the accessed class.
Then an around advice can be written to intercept calls to this getter method, in which the private member is returned and no call to proceed() is made.
This is similar to the useful idioms described in AspectJ in Action, Second Edition (Section 5)  for providing a default interface implementation or for introducing members to multiple types, with the addition of the around advice that "hijacks" calls to the new getter.

It is important to note here that while it seems that we have declared an interface that any class can implement, the implementing aspect relies on the actual instrumented object being of the concrete SomeClass type.
This means that SomeClass must be visible to your code (public). Otherwise refelction is still the only option.
The aspect is declared as privileged in order to enable the access of the private member of the target object once it has been cast into the concrete SomeClass  type.

Here are the classes in play:

  • The class with the private member
  • The interface declaring the public getter
  • The privileged aspect, containing the mixin declaration of the interface and the around advice
  • Example of accessing private member from a different class

Two things should be noted when using load-time weaving:

  • Since AspectJ will only weave during load time, the interface should be declared in a separate java class. This is necessary in order for the java compiler to recognize these calls from other classes : ((PrivateMessageExposer)privateClass).getPrivateMessage();
  • In order to protect your code from API changes in 3rd party libraries, you should  catch NoSuchMethodError exceptions that will be thrown during runtime.

Following is a summary of some basic performance tests we ran, where we compare execution times of a loop that is executed n times with reflection/weaving. The loop simply accesses the privateMessage field of the same instance n times consecutively.
The tests were run with the following hardware – 8 Cores x Intel Xeon E5410 @ 2.33 GHz. 16 GB memory (Heap 1GB).
As the table shows, the performance gain reaches 31% as the number of execution times gets higher, but there seems to be some performance degradation for lower numbers.

Conclusion

Depending on your needs and existing use of AspectJ, this could be a simple way to gain a performance improvement. In order to know if this will indeed result in a performance improvement and of what magnitude, you should run your own performance tests, since the results above are not conclusive, and moreover, represent a very simlified use case.

In addition to the possible performance gain, you gain more type safety than with reflection, as can be seen by this line of code : return ((SomeClass )obj).privateMessage;

  – Talya Gendler, Spring Insight Engineering

152 thoughts on “Using AspectJ for Accessing Private Members without Reflection

  1. 人気バッグランキング

    アディダス アディゼロ 人気バッグランキング http://zuixinchm.longinesckmapqdhahuepanckmapqdejp.org/

    Reply
  2. omidparse

    hi!
    good.thanks for it.
    it’s help me to improv my code.

    Reply
  3. Istanbul

    thanks for sharing

    Reply
    1. ممبر تلگرام

      nice great

      Reply
  4. mobinhost

    سرور مجازی ویندوز
    https://www.mobinhost.com/%D8%B3%D8%B1%D9%88%D8%B1-%D9%85%D8%AC%D8%A7%D8%B2%DB%8C.html

    Reply
  5. قالب وردپرس

    thanks

    Reply
  6. نمونه سوالات استخدامی

    goooooooooooooooooooooooooooooooooooooood

    Reply
  7. سئو سایت

    mersi

    Reply
  8. ترک اعتیاد

    thanks for you

    Reply
  9. ثبت تغییرات شرکت در کرج

    mersi

    Reply
  10. درمان اعتیاد

    thanks for you

    Reply
  11. مرکز بستری ترک اعتیاد

    mrci

    Reply
  12. ثبت شرکت در کرج

    thanks

    Reply
  13. ثبت شرکت سهامی خاص در کرج

    very good thanks for you

    Reply
  14. ثبت شرکت با مسئولیت محدود در کرج

    good thanks very match

    Reply
  15. تولیدی مانتو اداری

    very good thanks for you

    Reply
  16. خرید بلیط هواپیما

    good tnx

    Reply
  17. دفتر ایر آسیا در تهران

    SEE U

    Reply
  18. نمونه سوالات پیام نور

    Thank you
    Excellent

    Reply
  19. موسسه حرف آخر

    حرف آخر | موسسه حرف آخر | انتشارات کنکور حرف آخر

    Reply
  20. معماری | 98معماری | معماری ایران | عمران

    معماری | معماری و عمران | معماری ایران | معماری جهان |معماری 98 |نقشه معماری
    gooooooooooooooooooooooooooooooood

    Reply
  21. خرید قالب وردپرس

    خرید قالب وردپرس ارجینال فقط از آپ تم

    Reply
    1. نمونه سوالات پیام نور با پاسخنامه

      نمونه سوالات پیام نور با پاسخنامه

      Reply
  22. خرید قالب وردپرس

    خرید قالب وردپرس

    Reply
  23. younes

    فیلم های کنکوری

    Reply
  24. معماری

    very nice

    Reply
  25. سرور مجازی

    سرور مجازی

    Reply
  26. سرور مجازی

    سرور مجازی سرور مجازی آلمان

    Reply
  27. آموزش اندروید

    Please also visit my dear friend Les Site Higher
    tnx

    Reply
  28. وقت سفارت

    It looks interesting, thanks for sharing

    Reply
  29. دانلود مقاله

    very helpful article…thanks for sharing this informative post
    best regard

    Reply
  30. <a> امید

    thanks.very good

    Reply
  31. حامد

    امید
    very good

    Reply
  32. chat

    thanks for sharing

    Reply
  33. سئو چیست

    very good article

    Reply
  34. هاست وردپرس

    Thank you.
    Happy new year.

    Reply
  35. سرور مجازی ارزان

    very nice.

    Reply
  36. باتری یو پی اس

    Thank you for this article.
    Happy new year.
    Best regards.
    My website : http://iranbattery.net

    Reply
  37. سئو سايت

    Tnx for your content ! I love vmware …

    Reply
  38. تفاوت میان فیستول و سینوس

    great! thanks a lot

    Reply
  39. علایم فیستول مقعدی

    enjoying your usefull article! nice job

    Reply
  40. آموزش تعمیرات موبایل

    In addition to the possible performance

    Reply
  41. چت

    enjoying your usefull article! nice job

    Reply
  42. php

    enjoying your usefull article! nice job

    Reply
  43. وقت سفارت

    tanx for shar

    Reply
  44. وقت سفارت

    very helpful article

    Reply
  45. وقت سفار کانادا

    very nice

    Reply
  46. اشتراک ویدیو

    THANK YOU FOR SHARING THIS POST

    Reply
  47. John

    Great blog keep going

    Reply
  48. قالب وردپرس

    rtled wordpress themes

    http://megatheme.ir

    Reply
  49. خرید لاستیک

    best site ranx

    Reply
  50. دیجی وردپرس

    hi, thanks
    nice post

    Reply
  51. معماری 98

    goooooooood
    helpful article

    Reply
  52. قالب وردپرس

    woooow very god this article

    Reply
  53. فروشگاه معماری

    how to you custom class ?
    public class SomeClass {
    private String privateMessage = “you can see me?!”;
    }

    Reply
  54. شیرآلات

    good web

    Reply
  55. هود آشپزخانه

    good web

    Reply
  56. آموزش کسب و کار اینترنتی

    tnx
    آموزش کسب و کار اینترنتی

    Reply
  57. tourtokish

    thank you for sharing such informative data

    Reply
  58. درب ضد سرقت

    خريد درب ضد سرقتwww.sepahandarb.com

    Reply
  59. فلزیاب

    خرید فلزیاب اورجینال

    Reply
  60. تور شیراز

    thanks alot for sharing this post

    Reply
  61. آموزش وردپرس

    Please also visit my dear friend Les Site Higher

    my web site: https://digiwp.com/

    Reply
  62. قالب وردپرس

    thank you for your great post

    Reply
  63. قالب وردپرس

    Have good professional website

    Reply
  64. آموزشگاه شیرینی پزی

    best website

    Reply
  65. بازاریابی دیجیتال

    thanks for this article

    Reply
  66. سئو سایت

    You can explain more

    Reply
  67. سئو

    I love the tutorials about vmware
    thank you for sharing such informative data visit my site http://www.webmac.ir
    وب مك

    Reply
  68. تابلو چلنیوم

    thanks for this article

    Reply
    1. خانه هوشمند رشت

      thanks for this article.
      yes.ok

      Reply
  69. سئو

    سئو و بهینه سازی سایت

    Reply
  70. قیمت سئو

    SALAM KHOBIN

    Reply
  71. Kaamyaar

    :ازدم مرکز تخصصی فروش انواع کنسول گیم، بازی و لوازم جانبی

    PS4
    PS3
    Xbox One
    Xbox 360

    https://azdam.com

    با پایین ترین قیمت بازار و ضمانت خرید شما

    پلی استیشن 4 خود را از ما بخرید و هدیه بگیرید.

    با بیش از 5 سال سابقه کار تخصصی

    Reply
  72. اجاره خودرو

    Thanks for sharing your knowledge
    its so usefull and helpfull

    Reply
  73. پروژه معماری

    I love the tutorials about vmware

    Reply
  74. Mohammad

    تصاویر جدید در سایت http://2aks.ir

    Reply
  75. تور دبی

    thanks for your sharing

    Reply
  76. تعمیر کولر گازی

    thanks for your sharing

    Reply
  77. سئو وردپرس

    Hi!
    Fantastic article, thanks for sharing this insightful piece.

    Reply
  78. مقاوم سازي ساختمان

    thanks for this article

    Reply
  79. تبلیغات گسترده در تلگرام

    Keep up the good writing.

    Reply
  80. خرید گل

    با خرید گل و سفارش دسته گل, سفارش گل , خرید جعبه گل از قاصدک گل های زیبا و باکیفیت را می توانید از گل فروشی ما سفارش بدهید.

    Reply
  81. تعمیرگاه مجاز سامسونگ

    Thank you!
    Thank you. This is very useful.

    Reply
  82. باربری تهران

    باربری تهران

    Reply
  83. Adana Web Tasarım

    Thanks for sharing your knowledge

    Reply
  84. خرید vps ارزان

    thanks dear its very helpfull

    Reply
  85. خرید سرور مجازی ارزان

    thanks for your sharing

    Reply
  86. خرید سرور مجازی ارزان

    thanks

    Reply
  87. payesh sabt

    ثبت شرکت در کرج

    Reply
  88. araxsabt

    ثبت شرکت و ثبت برند

    Reply
  89. سپتیک تانک

    thank you so much

    Reply
  90. netmarko

    Thank you.
    This is very useful.

    Reply
  91. دستگاه روغن گیری

    good job

    Reply
  92. رپورتاژ

    best regards

    Reply
  93. Tahvieh Sepehr

    thx alot

    Reply
  94. طراحی سایت

    thank you for sharing

    Reply
  95. فروشگاه اینترنتی کتاب

    thankx dear its very helpfull

    Reply
  96. سئو

    very useful text and so nice

    Reply
  97. تزریق-بوتاکس

    thank you for sharing
    تزریق-بوتاکس

    Reply
  98. جراحی-پلک

    جراحی-پلک جراحی-پلک جراحی-پلک جراحی-پلک
    جراحی-پلک

    Reply
  99. فیش پرینتر

    thank you for sharing

    Reply
  100. صدای استرالیا

    very good thanks for you

    Reply
  101. دانلود فیلم ساعت 5 عصر

    thanksi

    Reply
  102. وقت سفارت

    thank you so much

    Reply
  103. تبلیغ در گوگل

    merciiii

    Reply
  104. تور اروپا

    very useful

    Reply
  105. زیورآلات و صنایع دستی

    فروشگاه صنایع دستی و زیور آلات

    Reply
  106. تعمیرات ساختمان

    very useful

    Reply
  107. تور باکو

    very nice and perfect blog.

    Reply
  108. یدات کلسیم

    excellent.

    Reply
  109. مشاوره مدیریت رسا

    مشاوره مدیریت، مشاوره منابع انسانی و استخدامrasateam.com

    Reply
  110. حرف اخر

    excellent

    حرف اخر حرف نداره من سه تا درسو گرفتم تونستم در کمترین زمان درصد های خیلی خوبی بزنم

    Reply
  111. حرف اخر

    very useful.

    قیمت عربی حرف اخر میشه بگید

    Reply
  112. حرف اخر

    very useful.

    قیمت زبان حرف اخر چنده

    Reply
  113. حرف اخر

    من پک کامل رشته تجربی حرف آخر گرفتم از درس خوندن سیر نمیشم واقعا عالیه

    Reply
  114. Adana web tasarım

    thank you so much for sharing

    Reply
  115. حرف اخر

    من از ادبیات حرف آخر استفاده کردم ادبیاتم خیلی ضعیف بود اما با ادبیات حرف آخر بهترین درصدم در کنکور ادبیات بود

    Reply
  116. حرف اخر

    thank you so much for sharing

    من از ادبیات حرف آخر استفاده کردم ادبیاتم خیلی ضعیف بود اما با ادبیات حرف آخر بهترین درصدم در کنکور ادبیات بود

    Reply
  117. اسکوتر برقی

    اسکوتر برقی
    http://scootershop.ir/

    Reply
  118. ویزا کانادا

    thank you

    Reply
  119. شارژ کارتریج

    شارژ کارتریج پرینترهای لیزری و دستگاه کپی توسط مجرب ترین تکنسین های ماشین های اداری انجام می شود. در هنگام شارژ کارتریج، بررسی سلامت قطعات کارتریج نیز انجام می شود. قطعاتی همچون درام، بلید، مگنت، چیپست و… که در صورت نیاز تعویض می شوند. آوند پرینتر با سال ها تجربه در زمینه ماشین های اداری مطمئناً اعتماد شما را جلب کرده و شما را مشتری خود خواهد کرد.

    Reply
  120. مهاجرت به استرالیا

    وبسایت اطلاع رسانی فارسی زبانان استرالیا | Voice Of Australia

    Reply
  121. دانلود آهنگ های جدید ایرانی پرطرفدار

    دانلود آهنگ های جدید ایرانی پرطرفدار

    Reply
  122. طراحی سایت در مازندران

    طراحی سایت ارزان و حرفه ای با ادمین سایت

    Reply
  123. ویزای تایلند

    Good site.

    Reply
  124. سئو چیست

    this is a usefull and handy for me

    Reply
  125. کتاب وب

    im website designer. one of my favorite hobbies is coding. you really helped me. sited that i will mentioned here is one of my project
    https://ketabweb.com

    Reply
  126. GHAEM

    قیمت روز میلگرد 

    Reply
  127. SHARYAN

    انتشارات سمت 

    Reply
  128. MANISAN

    انتشارات ارجمند

    Reply
  129. ovila

    کواد کوپتر دوربین دار

    Reply
  130. papiroos

    هلی شات

    Reply
  131. Ggahve

    کوادکوپتر

    Reply
  132. khandevaneh

    کواد کوپتر

    Reply
  133. kavazaki

    کوادکوپتر دوربین دار

    Reply
  134. nazm

    اجاره آپارتمان مبله در تهران

    Reply
  135. landi

    آپارتمان مبله ر تهران

    Reply
  136. ttehran

    قیمت کرکره برقی 

    Reply
  137. ttehran

    قیمت کرکره برقی آلومینیومی 

    Reply
  138. GGAVAN

    فروش اداری در پونک

    Reply
  139. سئو

    tnx for post

    Reply
  140. عایق صوتی خودرو

    thank you

    Reply
  141. طراحی سایت

    tnx for post

    Reply
  142. لیفت صورت با نخ

    perfect

    Reply
  143. کلینیک تغذیه

    i whant that

    Reply
  144. طراحی سایت

    Thanks for sharing

    Reply
  145. digisilkroad

    Digisilkroad is a global website about international exhibitions all around the world that can help you to have good business

    Reply
  146. digisilkroad

    Thanks fo your good seo.
    Digisilkroad is a global website about international exhibitions all around the world that can help you to have good business

    Reply
  147. licni oglasi

    Great post .I was thinking about this main idea and it comes the best solution for me .

    Reply
  148. وام

    thank you

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

*