IntelliJ IDEA – the IDE for Professional Development in Java and Kotlin
We've just released AI Assistant for IntelliJ IDEA, which can help you complete many tasks in the IDE, such as explaining code, generating commits, and assisting with writing code. The AI Assistant plugin is powered by the JetBrains AI Service, which uses different large language models (LLMs) under…
We've talked about a lot of the changes in IntelliJ IDEA 2018.2 here in the blog, such as the improved data flow analysis and advanced contract annotations. In this post we're going to look at pretty much all the other updates to inspections and intentions. (more…)…
IntelliJ IDEA gives warnings in the editor if it detects suspicious code based on an analysis of data flow. In IntelliJ IDEA 2018.2 we can now see information known about a particular symbol. For example, if a number of instanceof checks have been performed against a parameter, pressing Ctrl+Shift…
This is part of a series investigating code that looks suspicious ("code smells"), and exploring possible alternatives. Code Smells: Null Code Smells: Deeply Nested Code Code Smells: Iteration Code Smells: Mutation Code Smells: Multi-Responsibility Methods Code Smells: If Statements …
Earlier we mentioned that IntelliJ IDEA 2017.2 EAP features improved control flow analysis that infers the contracts of certain methods of String, Array, Collection and Map classes. With today’s EAP build, this analysis becomes even smarter. If that sounds like something you might be interested i…
Say hello to the fresh IntelliJ IDEA 2016.3 EAP build, which brings several new features worth checking out. Support for Polyglot Maven First of all, we've added the support for Polyglot Maven. In case you don't know, this is a set of Maven extensions that allows the POM file to be written in …
I’ve been working a lot with Java 8 code over the last couple of years, for both new applications and migrating existing ones, and it feels like the right time to write down some of the “best practices” I’ve found useful. I personally dislike the term “best practices” as it implies a “one size fits …
A fresh EAP build for IntelliJ IDEA 2016.2 is out and, being a good EAP build that it is, has something new for you to try: General A new inspection that warns you when you instantiate new objects inside equals, hashCode, compareTo or Comparator.compare methods. This helps to avoid significan…
Since Java 8 has been launched almost two years ago, it has been gaining more and more traction around the community. Most Java frameworks and platforms have either already migrated their APIs to Java 8, or are planning to do so. With our latest update, the whole IntelliJ Platform has migrated to…
Encapsulation is a simple but powerful concept in software engineering that often goes hand-in hand with abstraction. In OOP, we use these two principles to help model mundane and complex systems, from physical processes to digital transactions, however these terms can often mean different things to…
One of the core principles of computer programming is eliminating manual repetition. Not only is repeated code time-consuming to read and review, it is disproportionately complex to maintain and provides a ready source of bugs when one copy changes. Yet in spite of this, duplicating some code in a l…
Android developers will be familiar with the concept of resource IDs, which are unique integers generated by the Android Asset Packaging Tool (aapt) for accessing resources within your application through the static class, `R`. Resource IDs are assigned to all resources defined inside your project's…