¿Hay una forma de declarar una clase / método experimental en Java?

El señor Vanderbilt:

Durante el desarrollo de las clases I a veces de escritura o métodos que todavía tienen la condición experimental. Me gustaría declarar estas clases para que pueda verlas directamente en el código. Todo esto debería funcionar como @Deprecated. Sólo con el significado opuesto.

Por lo que yo sé, no hay tal declaración en Java. ¿O es eso? Si no es así: ¿Cómo podría realizar esta funcionalidad?

Mchwkr:

Para Java 1.6 + (no estoy seguro sobre 1.5) puede usar su propia anotación de costumbre, aquí es una plantilla funcional que puede utilizar:

package com.mycompany.annotations;

import java.lang.annotation.*;

/**
 *
 * This element has an experimental maturity.  Use with caution.
 *
 *
 * NOTE: The developers of this element is not responsible for the issues created,
 * using it is not suggested for production environment. If you see this annotation do this, do not do that etc
 * Enjoy responsibly....
 */


@Documented //this annotation maybe helpful for your custom annotation
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER,
        ElementType.CONSTRUCTOR, ElementType.LOCAL_VARIABLE, ElementType.PACKAGE, 
        ElementType.ANNOTATION_TYPE, ElementType.TYPE_USE, ElementType.TYPE_PARAMETER
})
public @interface Experimental {}

Aquí está el código fuente de ElementType, así que cada uno puede no querer usar los elementosElementType.TYPE_USE, ElementType.TYPE_PARAMETER

    /*
    ....
        * @since 1.5
        * @jls 9.6.4.1 @Target
        * @jls 4.1 The Kinds of Types and Values
        */
public enum ElementType {
/** Class, interface (including annotation type), or enum declaration */
TYPE,

/** Field declaration (includes enum constants) */
FIELD,

/** Method declaration */
METHOD,

/** Formal parameter declaration */
PARAMETER,

/** Constructor declaration */
CONSTRUCTOR,

/** Local variable declaration */
LOCAL_VARIABLE,

/** Annotation type declaration */
ANNOTATION_TYPE,

/** Package declaration */
PACKAGE,

/**
 * Type parameter declaration
 *
 * @since 1.8
 */
TYPE_PARAMETER,

/**
 * Use of a type
 *
 * @since 1.8
 */
   TYPE_USE
}

Por cierto que esto es lo que veo desde mi IntelliJ cuando la búsqueda de bibliotecas, probablemente implementadas Experimental

introducir descripción de la imagen aquí

Hay una Experimentalanotación definida con Java 9. Pero tenga en cuenta que es en Oracle JDK, no el OpenJDK. En el momento de este post, es necesario instalar JDK-11 desde el sitio oficial para ver / usarlo. Yo no lo usaría para este fin, a causa de los hechos Stephen C. LISTA.

No se puede utilizar para los métodos de todos modos. ya que su código fuente está

... 
package jdk.jfr;

/*
 ...
 *
 * @since 9
 */
@MetadataDefinition
@Label("Experimental")
@Description("Element is not to be shown to a user by default")
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.FIELD, ElementType.TYPE })
public @interface Experimental {
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=199460&siteId=1
Recomendado
Clasificación