Overview
Java (Oracle Java update 2) has many classes with the same generic name. To avoid further confusion, I suggest avoiding these names if you can.
Most repeated
The following class names are repeated,
19 Handler,
16 Messages,
13 Util,
10 Element,
8 Attribute,
7 SecuritySupport,
7 Node,
6 Provider,
6 Header,
6 FactoryFinder,
6 Document.
5 SOAPBinding,
5 Repository,
5 Ref,
5 ORB,
5 Name,
5 Constants,
5 Connection,
5 Comment,
5 Binding,
5 Attributes,
This excludes the Apache XML library which repeats many names. If you include these libraries there are 26 classes called SecuritySupport.
Four times
Window,
Version,
Utility,
Timer,
Text,
State,
Signature,
ServiceName,
ServiceConfigurationError,
Service,
ResourceLoader,
Queue,
Policy,
Parser,
Operation,
NativeLibLoader,
Message,
Label,
JSObject,
GetPropertyAction,
FactoryFinder$ConfigurationError,
Event,
ConstantPool,
AppletAudioClip,
Action,
Three times
XMLWriter,
Wrapper,
WildcardTypeImpl,
Visitor,
Validator,
Types,
TypeMismatch,
TypeInfo,
Type,
Trace,
Token,
Timestamp,
Target,
Symbol,
StyleSheet,
SOAPFault,
SOAPConstants,
Scope,
Schema,
ResourceManager,
Resource,
Resolver,
Request,
Reference,
Properties,
ProgressMonitor,
PrincipalImpl,
Principal,
Port,
PooledConnection,
Pool,
Pipe,
Patcher,
ParseException,
OutputStream,
ObjectStreamField,
Navigator,
NamespaceSupport$Context,
NamespaceSupport,
MimeType,
MemoryCache,
MarshalException,
Manifest,
Main,
Location,
List,
JarVerifier,
IOR,
Invoker,
InvalidName,
Introspector,
InputStream,
Import,
ImageCache,
HTMLDocument,
HTMLCollection,
Headers,
FinalArrayList,
Filter,
FileSystem,
FactoryImpl,
Extension,
EventListener,
ErrorHandler,
Entity,
EncryptedPrivateKeyInfo,
Delegate,
DataSource,
CurrentOperations,
CurrentHelper,
Current,
Counter,
Context,
ContentType,
Config,
Code,
CharacterData,
Certificate,
CacheTable,
Cache,
Bridge,
Base64,
Authenticator,
AttributeList,
ArrayType,
Array,
AppletAudioClip$1,
Annotation,
Appearing twice
Too many to mention.
This is a nice example of how recycling names creates confusion...
ReplyDeleteI typically try to stay away from both generic words and names used in the core libraries, even when they appear only once. At the first glance this may sound a bit extreme and hard to do, but I find it fairly easy to check if the name is already used in the core libraries, and if it is, simple to replace it with a more specific composite name. For example, I use the namne ClusterEventListener instead of the generic EventListener to avoid confusion. My names tend to be longer as a result, but I found this a relatively small price to pay.
One of the class which was rather long in Java 6 was renamed in Java 7.
ReplyDeletecom.sun.java.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState
I suspected it might be a short poem.
Internal Frame
Internal Frame
Title Pane
Internal Frame
Title Pane
Maximise Button
Window Not Focused State