home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.os.vms      DEC's VAX* line of computers & VMS.      264,096 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 262,478 of 264,096   
   =?UTF-8?Q?Arne_Vajh=C3=B8j?= to Lawrence D'Oliveiro   
   Re: OpenVMS system programming language   
   24 Feb 25 22:42:56   
   
   From: arne@vajhoej.dk   
      
   On 2/24/2025 9:22 PM, Lawrence D'Oliveiro wrote:   
   > And then there’s the long-windedness of code like   
   >   
   >      static final java.util.Map TypeNames;   
   >        /* mapping from sensor type codes to symbolic names */   
   >      static   
   >        {   
   >          TypeNames = new java.util.HashMap();   
   >          TypeNames.put(Sensor.TYPE_ACCELEROMETER, "accelerometer");   
   >          TypeNames.put(Sensor.TYPE_AMBIENT_TEMPERATURE, "ambient   
   temperature");   
   >          TypeNames.put(Sensor.TYPE_GRAVITY, "gravity");   
   >          TypeNames.put(Sensor.TYPE_GYROSCOPE, "gyroscope");   
   >          TypeNames.put(Sensor.TYPE_LIGHT, "light");   
   >          TypeNames.put(Sensor.TYPE_LINEAR_ACCELERATION, "linear accel");   
   >          TypeNames.put(Sensor.TYPE_MAGNETIC_FIELD, "magnetic");   
   >          TypeNames.put(Sensor.TYPE_ORIENTATION, "orientation");   
   >          TypeNames.put(Sensor.TYPE_PRESSURE, "pressure");   
   >          TypeNames.put(Sensor.TYPE_PROXIMITY, "proximity");   
   >          TypeNames.put(Sensor.TYPE_RELATIVE_HUMIDITY, "relative humidity");   
   >          TypeNames.put(Sensor.TYPE_ROTATION_VECTOR, "rotation");   
   >          TypeNames.put(Sensor.TYPE_TEMPERATURE, "temperature");   
   >        } /*static*/   
   >   
   > because the language doesn’t provide expressions that evaluate to   
   > common structure types like dictionaries/maps.   
      
   If you are on Java 10+ then you could:   
      
   Map typeNames = Map.of(Sensor.TYPE_ACCELEROMETER,   
   "accelerometer",   
      
   Sensor.TYPE_AMBIENT_TEMPERATURE, "ambient temperature",   
                                            ...);   
      
   But the Sensor.TYPE_* int approach has been obsolete since Java 5 where   
   Java got enums.   
      
   With enum the need for that Map disappears.   
      
   You can either hack it:   
      
   public class EnumHack {   
        public static enum SensorType {   
            TYPE_ACCELEROMETER, TYPE_AMBIENT_TEMPERATURE, TYPE_GRAVITY;   
            public String prettyName() {   
                return name().substring(5).toLowerCase().replace('_', ' ');   
            }   
        }   
        public static void main(String[] args) {   
      
   System.out.println(SensorType.TYPE_AMBIENT_TEMPERATURE.prettyName());   
        }   
   }   
      
   or do it the right way:   
      
   public class EnumRight {   
        public static enum SensorType {   
            TYPE_ACCELEROMETER("accelerometer"),   
   TYPE_AMBIENT_TEMPERATURE("ambient temperature"), TYPE_GRAVITY("gravity");   
            private String prettyName;   
            private SensorType(String prettyName) {   
                this.prettyName = prettyName;   
            }   
            public String getPrettyName() {   
                return prettyName;   
            }   
        }   
        public static void main(String[] args) {   
      
   System.out.println(SensorType.TYPE_AMBIENT_TEMPERATURE.getPrettyName());   
        }   
   }   
      
   Arne   
      
   --- SoupGate-DOS v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca