tags:

views:

70

answers:

2
+3  Q: 

Java capabilities

Does Java have anything like any of the following

  • macros
  • a way to iterate over all private fields
  • something like smalltalk symbols-ie something for quick comparison of static strings?

note I'm trying to emulate enums for blackckbery (and a little worried about speed for a simple string-> int dictionary ) which I'm fairly sure doesn't have them please try not to include code-just references I would like to code it up myself.

Reflection seems interesting is it that difficult to use simply? can you access field names with it? can you use it with a normal blackbery java program?

+3  A: 
  • What exactly do you mean by macro? If you're talking about preprocessing macros, then there is no such thing. Java doesn't have a preprocessor (but nothing stops you from using an external one in your build process).
  • Reflection can be used to iterate over the fields and methods of a class, but it's not really a first-class construct and meant for advanced development (usually inside a library)
  • Some use of Smalltalk symbols maps pretty cleanly onto enums, others do not. Note that enum is basically some nice syntactic sugar for the type-safe enum pattern that can be implemented in pre-Java 5 as well.
Joachim Sauer
yes pre-processing macros
Roman A. Taycher
+3  A: 
  • No, there are no macros and I don't know of anything similar.
  • You can use reflection to access any field or iterate over them.
  • Not sure, but I don't think so. Strings are always objects in Java, and always have to be compared using equals()
Thomas Lötzer