Home » Android » java – Printing the enum's name

java – Printing the enum's name

Posted by: admin June 15, 2020 Leave a comment


I’m using eclipse + Android SDK on ubuntu.

I would like to print the name of a sensor type device, there a A LOT OF THEM and i want to do it automatically.

If i use a

Log.d("SENSORTYPE","Type: " + tempSensor.getType())

I print the (int) type, but i would like the name whom use the enum.

How could i do that?

Thants in advance.

How to&Answers:

For enumerations, you can obtain an array of all the constants and loop over them very easily using code such as this:

for(YourEnum value: YourEnum.values()){

However, the Sensor class you link to isn’t an enumeration, but contains a list of constants. There’s no way to programatically loop over that list like an enumeration without specifying all the constants names.

However, you can create a static lookup that maps the ints to the String value you want to use, for example

Map<Integer,String> lookup = new HashMap<Integer,String>();
//Code a put for each TYPE, with the string you want to use as the name

You can use this like this:

Log.d("SENSORTYPE","Type: " + lookup.get(tempSensor.getType()));

This approach does mean you still have to write out each constant and update the list if the constants change, but you only have to do it once. It’d be a good idea to wrap the lookup in some kind of helper method or class depending on how widely you want to reuse it.


you can introduce an abstract method and implement it in every enumeration

enum Colour {

Red {

    String colourName() {
        return "Red";

abstract String colourName();

This way gives you more flexibility, for example, if you don’t want to display its programmatic name


Log.d("SENSORNAME", "NAME: " + tempSensor.name());