I'm trying to find a way to list which objects a run-time object is referring to. I know there is a way to enquire the jvm using oql but what I'd like to do is to query it from inside a program. Is there any API I could use?
2
There are 2 best solutions below
Related Questions in JAVA
- Add image to JCheckBoxMenuItem
- How to access invisible Unordered List element with Selenium WebDriver using Java
- Inheritance in Java, apparent type vs actual type
- Java catch the ball Game
- Access objects variable & method by name
- GridBagLayout is displaying JTextField and JTextArea as short, vertical lines
- Perform a task each interval
- Compound classes stored in an array are not accessible in selenium java
- How to avoid concurrent access to a resource?
- Why does processing goes slower on implementing try catch block in java?
- Redirect inside java interceptor
- Push toolbar content below statusbar
- Animation in Java on top of JPanel
- JPA - How to query with a LIKE operator in combination with an AttributeConverter
- Java Assign a Value to an array cell
Related Questions in JVM
- JVM is functioning very differently with same flags
- Heap size issue on migrating from Solr 5.0.0 to Solr 5.1.0
- Can't open eclipse with Windows 7 (doesn't see jdk jde)
- Can I import java libraries in HP ALM without Microsoft Java Virtual Machine?
- resin project, jdk8 has a high cpu load ,but jdk7 not
- Using multiple JVM languages in the same project
- Practical case JVM tunning to avoid full GC
- why does buckminster not resolve my passed JVM argument?
- Where to patch back the information gathered during program analysis
- Java 8 , JCE Unlimited Strength Policy and SSL Handshake over TLS
- Does the JVM limit the number of threads an Executor can run?
- With Swift open sourced, what would it take to have it running on the JVM?
- JVM ClassUnloadingWithConcurrentMark flag
- Ruby RJB can't create Java VM error
- Exposing whether an application is undergoing GC via UDP
Related Questions in OQL
- VisualVM 1.3.8 OQL - TypeError: [RegExp /java.lang./] is not a function
- VisualVM OQL filter not working as expected
- VisualVM OQL: how to search for primitive float values rather than actual Float instances?
- Java heap analysis with OQL/VisualVM: find path from indirect referrer to referee?
- VisualVM OQL: find object that has (indirect) reachables/references to two object IDs?
- How to make $lookup in MongoDB work with _id?
- Using HINT and TRACE with GemfireTemplate.query method
- GemFire Select * Query with index returns inconsistent results
- OQL and SQL queries. Select all department numbers whose employees have the same salary
- In Eclipse MAT's OQL: how to construct a date from a long integer?
- Eclipse MAT OQL list of classes in a certain package
- GemFire OQL Query - How do I use the count of a SELECT statement in the WHERE clause?
- Formatting the result of oql in VisualVM
- How to access gemfire cache from jdbc driver
- How do I find what an object refers to?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
You can do it via Reflection (
java.lang.reflect).How is described in this article. Basically, given this class that has private members:
With Reflection, you can access all of its members (including the private ones), including their values. And so you look at all of its data members to see what they refer to (and of course, you can repeat the process if they also refer to other objects). Here's how to access their members (this code shows methods as well, which you probably won't need if you're just interested in data, but I didn't see any good reason to pull that part out):
I've fixed a bug in their original code and made a small change to make it more clear that
Hackeris not in any way tied toSecret(other than inmain).Update: Re your question below about the fields from base classes, here's an updated
Hackerthat does that (I've assumed you don't want to try to enumerate the fields onObject, so I've stopped there):When combined with
and
you get: