Java uses unchecked or unsafe operations: Causes and how to fix it

Continuous to the series of Java is an article about Java uses unchecked or unsafe operations. To be honest, if you are a developer while working with Java, you surely have met this warning. So, what is the main cause of this issue, and how to fix it effectively? Let’s make it clearer with ArrowHiTech through this article below! 

What causes Java to use unchecked or unsafe operations? 

With Java, if you compile code that the compiler believes to be poor in error checking or hazardous in some way, the message Java uses unchecked or unsafe operations will appear. In fact, it’s a warning rather than an error, and luckily, it won’t stop you from building the code.

To begin, you may have seen the following notification on a dialog box if you’ve begun building your own JUnit test cases for your problems in ClassCube.

Java uses unchecked or unsafe operations
Java uses unchecked or unsafe operations

For students, it’s a little perplexing because they notice that their tests were successful, but there was also some excess production. That output appears to be an error message.

Note: Some input files use unchecked or unsafe operations.

Note: Recompile with -Xlint:unchecked for details.

Besides, uses unchecked or unsafe operations usually emerges if you use a collection without a type specifier. For example, when you use ArrayList() instead of ArrayList in your code.

Illustrated example of Java uses unchecked or unsafe operations

Now, let’s take a look at the following instance:

ArrayList list = new ArrayList();

For more details, this will result in the Java uses unchecked or unsafe operations notice in Java 7 and higher. What’s more, the “right” approach to code this is to declare the data types within the ArrayList.

ArrayList<String> list = new ArrayList<>();

How to solve Java uses unchecked or unsafe operations easily? 

During the process working with Java, if you get this warning, you should follow the first instruction we recommend right now. 

The first method to solve Java uses unchecked or unsafe operations is to avoid doing something that causes the message to be sent, such as in the case above. This will most likely come from your test case file. However, it is sometimes caused by your student code, which you have little control over. 

Way to solve Java uses unchecked or unsafe operations
Method to fix Java uses unchecked or unsafe operations

What’s more, when you compile the code directly, you can remove the messages by adding -Xlint:unchecked to the javac command line. Also, you aren’t able to merely add a command line flag if you’re using a tool like ClassCube where you don’t have direct control over the command used to compile code. Therefore, you may add a flag to your code that accomplishes the same goal. Then, let’s explore the program below:


class ChickenTest {

  // Whatever unit test code you need


As you probably see, the line just above the class signature instructs JavaC not to show any unchecked warnings generated by the class. Moreover, if you simply wish to ignore the check in certain methods, you can use the same @SuppressWarnings(“unchecked”) above method signatures.

Why must we do so?

To be honest, it appears that this is something that we could handle for you. In addition, we also investigated adding -Xlint:unchecked to the program that compiles the code of your students. However, we decided against it.

fix Java uses unchecked or unsafe operations
Java uses unchecked or unsafe operations

First and foremost, this should only appear when you create full JUnit test files. This is already added to the test cases that are built if you’re doing simple test cases.

Besides, because we believed there may be times when you wanted your students to be aware of the messages. So, this is the reason why we left it up to you to turn on the suppress flag in this situation. Furthermore, it’s possible that you’ll want to teach your students how to avoid getting the error message. You’ll be able to actively turn it off this way. You wouldn’t be able to switch it back on if we did it automatically.

Additionally, as soon as you utilize output matching, you may also see this. However, in such a scenario, your student’s codes trigger the message. In brief, it’s an excellent teaching opportunity for you and your student to explain why the messages are appearing in this scenario.

Does it cause any problems?

If you wonder if Java use of unchecked or unsafe operations causes problems, don’t worry because the awnser is “NO”. Simple speaking, in case you’re using unit tests and this notice appears, it has no bearing on your grade. Not only that, you can still see the notification indicating all tests passed if you look at the screenshot at the top of this post. Even if that notification appears, it will still display as completely passed. Finally, in most circumstances, you can simply disregard it.


In conclusion

To conclude that Java uses unchecked or unsafe operations is not a serious error, it is just simply a warning. So, if you get it, don’t worry, all you need is to apply the solution we instructed above. 

All in all, ArrowHiTech hopes this article is useful for you, and through it, you will work well with Java. However, if you have any questions or face any trouble with Java, let’s CONTACT US right away. We are the pioneer in Android App development with an adaptable, skilled team of professionals who are ingenious to balance the complexity of the Android ecosystem with the latest technology and high expectations of modern mobile users. Check out our  web applications and mobile app development service