/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with this * work for additional information regarding copyright ownership. The ASF * licenses this file to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package java.lang.annotation; /** * Defines the interface implemented by all annotations. Note that the interface * itself is not an annotation, and neither is an interface that simply * extends this one. Only the compiler is able to create proper annotation * types. * * @since 1.5 */ public interface Annotation { /** * Returns the type of this annotation. * * @return A {@code Class} instance representing the annotation type. */ Class annotationType(); /** * Determines whether or not this annotation is equivalent to the annotation * passed. This is determined according to the following rules: * * * * @param obj * The object to compare to. * * @return {@code true} if {@code obj} is equal to this annotation, * {@code false} otherwise. */ boolean equals(Object obj); /** * Returns the hash code of this annotation. The hash code is determined * according to the following rules: * * * * @return the hash code. */ int hashCode(); /** * Returns a {@code String} representation of this annotation. It is not * strictly defined what the representation has to look like, but it usually * consists of the name of the annotation, preceded by a "@". If the * annotation contains field members, their names and values are also * included in the result. * * @return the {@code String} that represents this annotation. */ String toString(); }