Suppose I have a base class with a field refCount. I accidentally create a derived class which ALSO declares a field with the same name. (Actually, the name is not important: what matters is the type, which is ReferenceCount; but the names are pretty consistent.) This is a waste of memory, so it would be nice to be able to find such things automatically. Can this be done with Structural Search (or some other way for that matter)?
IntelliJ structural search find derived classes if base class matches criteria
373 views Asked by Mark VY At
2
There are 2 answers
1
Mark VY
On
It looks like the new version of IntelliJ (2018.3) has made this fairly easy, albeit slightly awkward. Had I known this was coming I would have been tempted to use the preview release.
The trick is to first create (and save!) a search template for the base class; for instance like this:
class $Class$ {RefCount $count$;}
and then do something like this:
class $Child$ extends $Base$ {RefCount $count$;}
And then add a "reference" filter for $Base$ which refers to the template you saved.
This trick doesn't work if Child extends Parent which in turn extends GrandParent, where the field is declared in Child and in GrandParent but not in Parent. I think this can be fixed to work for that case without much trouble but I don't actually know how to do it.
Related Questions in JAVA
- I need the BIRT.war that is compatible with Java 17 and Tomcat 10
- Creating global Class holder
- No method found for class java.lang.String in Kafka
- Issue edit a jtable with a pictures
- getting error when trying to launch kotlin jar file that use supabase "java.lang.NoClassDefFoundError"
- Does the && (logical AND) operator have a higher precedence than || (logical OR) operator in Java?
- Mixed color rendering in a JTable
- HTTPS configuration in Spring Boot, server returning timeout
- How to use Layout to create textfields which dont increase in size?
- Function for making the code wait in javafx
- How to create beans of the same class for multiple template parameters in Spring
- How could you print a specific String from an array with the values of an array from a double array on the same line, using iteration to print all?
- org.telegram.telegrambots.meta.exceptions.TelegramApiException: Bot token and username can't be empty
- Accessing Secret Variables in Classic Pipelines through Java app in Azure DevOps
- Postgres && statement Error in Mybatis Mapper?
Related Questions in INTELLIJ-IDEA
- Gradle 8.7 cannot find installed JDK 22 in IntelliJ
- LiveTemplate for TODO shortcut seems not working
- Jetbrains Intellij Works but Fleet does not : "is not recognized as an internal or external command, operable program or batch file."
- Why is there no help text when i write "." in IntelliJ?
- How to enable Kotlin REPL autocomplete
- Selenium error: SessionNotCreatedException | Java, Firefox, everything is updated and should be compatible
- Ubuntu-22.04 File watcher failed repeatedly and has been disabled (External file changes sync might be slow)
- IntelliJ Typescript NoSuchElementException
- I am trying to use h2 in-memory db from my spring boot application, my spring boot version is 3.1.10, but its not connecting to h2 properly
- Is there a new way to undo and redo in the new version of intelliJ
- How to debug a Kotlin/Native application in IntelliJ?
- Why rebuild module does not recompile dependency module, but build module does in IntelliJ Idea?
- Intelij ultimate and spring boot giving me errors
- Minecraft Mod not adding content
- In IntelliJ IDEA Community Edition, can you generate a dependency tree for Maven projects?
Related Questions in IDE
- Class disappears when switching from "Release" to "Debug"
- How can I transfer toolbar layouts between SSMS versions?
- GraalVM: Polyglot applications: Java classes in C++ IDE (including documentation, debug support etc.)
- What software can I use (if any) to embed URL links into a .mp4 file without paying for a subscription?
- How to fix lack of color contrast in VSCode selection tool?
- Spyder works, Anaconda cannot be opened
- Show all tabs and trailing spaces in Visual Studio 2022
- Using Azure DevOps Server 2022 (On-Premise) with Visual Studio Code for Java Project
- Git hooks in IntelliJ
- unable to integrate git in Intellij community version : Git is not installed Empty git --version output:
- I am getting this error using Eclipse : An error has occurred. See error log for more details. org/eclipse/egit/core/AdapterUtils
- After updating Visual Studio to v17.9.3 the IDE closes and dotnet.exe command reports Fatal error. Internal CLR error. (0x80131506)
- Are 'Two Normals' in VBA's project explorer a problem?
- No debugger via text IDE (Go32v2)
- "NoClassDefFoundError: org.bouncycastle.operator.OperatorCreationException when running Java code"
Related Questions in EDITOR
- Deleting camel humps in Intellij?
- Enhancing Audio Trimmer Widget in Flutter App
- Editor in SQLPLUS gives error when changing default editor
- WPF Image in User Control not showing in editor when I use the User Control
- Open files in new tabs in Kate
- How do I turn off syntax highlighting in micro text editor?
- Change font weight in visual studio code
- Seeking Feedback: Custom Toolbar Implementation for EditorJS
- Excessive spacing on a Weebly section
- How do I visually fake 4-space tabs in a 2-space project in VSCode?
- NodeJS FFMPEG : Issues combining the crops and the trims
- In Slickgrid,Aggregate Function result is not modifying/updating as per the slickgrid data inline edit
- VSCode editor mouse cursor inverts color when moving across panes
- ERROR: failed to solve: error from sender: context canceled
- Can three.js editor export a JS script?
Related Questions in STRUCTURAL-SEARCH
- Intellij structural search for method invocation where class containing method is marked with specific annotation
- Structural search - find any final local variables?
- PhpStorm Structural Search
- Replacing Type with var for all 'Class class = new Class()' usages in Java project
- Intellij SSR: how to extract structured information from initializer expressions
- how to find and replace annotations based on parameters?
- How do I create a custom IntelliJ warning/error for import statements?
- Finding the annotated method call as a parameter to Logger methods
- Intellij Idea Structural Replacement (replacing autowired annotation)
- Why does IntelliJ Structural Search find some of `(int) ($expr$ + 0.5f)`, but not all?
- Structural Search for log.debug(String.format.... not working as expected
- Structural search interface suspend function call
- how to negate search in intellij structural search
- Intellij structural search: find field and corresponding getter (to migrate an annotation)
- IntelliJ Search Template /Custom Inspection: Analyse sibling annotations
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?
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)
It looks like the
Java | Visibility | Field name hides field in superclassinspection does something similar to what you need.If you want to do this with Structural Search, you could do something like this. Search template:
And add the following "script" filter on the "complete match":