Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 17 java.base.jmod - Base Module
JDK 17 java.base.jmod is the JMOD file for JDK 17 Base module.
JDK 17 Base module compiled class files are stored in \fyicenter\jdk-17.0.5\jmods\java.base.jmod.
JDK 17 Base module compiled class files are also linked and stored in the \fyicenter\jdk-17.0.5\lib\modules JImage file.
JDK 17 Base module source code files are stored in \fyicenter\jdk-17.0.5\lib\src.zip\java.base.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ java/lang/reflect/RecordComponent.java
/* * Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package java.lang.reflect; import jdk.internal.access.SharedSecrets; import sun.reflect.annotation.AnnotationParser; import sun.reflect.annotation.TypeAnnotation; import sun.reflect.annotation.TypeAnnotationParser; import sun.reflect.generics.factory.CoreReflectionFactory; import sun.reflect.generics.factory.GenericsFactory; import sun.reflect.generics.repository.FieldRepository; import sun.reflect.generics.scope.ClassScope; import java.lang.annotation.Annotation; import java.util.Map; import java.util.Objects; /** * A {@code RecordComponent} provides information about, and dynamic access to, a * component of a record class. * * @see Class#getRecordComponents() * @see java.lang.Record * @jls 8.10 Record Classes * @since 16 */ public final class RecordComponent implements AnnotatedElement { // declaring class private Class<?> clazz; private String name; private Class<?> type; private Method accessor; private String signature; // generic info repository; lazily initialized private transient FieldRepository genericInfo; private byte[] annotations; private byte[] typeAnnotations; private RecordComponent root; // only the JVM can create record components private RecordComponent() {} /** * Returns the name of this record component. * * @return the name of this record component */ public String getName() { return name; } /** * Returns a {@code Class} that identifies the declared type for this * record component. * * @return a {@code Class} identifying the declared type of the component * represented by this record component */ public Class<?> getType() { return type; } /** * Returns a {@code String} that describes the generic type signature for * this record component. * * @return a {@code String} that describes the generic type signature for * this record component * * @jvms 4.7.9.1 Signatures */ public String getGenericSignature() { return signature; } /** * Returns a {@code Type} object that represents the declared type for * this record component. * * <p>If the declared type of the record component is a parameterized type, * the {@code Type} object returned reflects the actual type arguments used * in the source code. * * <p>If the type of the underlying record component is a type variable or a * parameterized type, it is created. Otherwise, it is resolved. * * @return a {@code Type} object that represents the declared type for * this record component * @throws GenericSignatureFormatError if the generic record component * signature does not conform to the format specified in * <cite>The Java Virtual Machine Specification</cite> * @throws TypeNotPresentException if the generic type * signature of the underlying record component refers to a non-existent * type declaration * @throws MalformedParameterizedTypeException if the generic * signature of the underlying record component refers to a parameterized * type that cannot be instantiated for any reason */ public Type getGenericType() { if (getGenericSignature() != null) return getGenericInfo().getGenericType(); else return getType(); } // Accessor for generic info repository private FieldRepository getGenericInfo() { // lazily initialize repository if necessary if (genericInfo == null) { // create and cache generic info repository genericInfo = FieldRepository.make(getGenericSignature(), getFactory()); } return genericInfo; //return cached repository } // Accessor for factory private GenericsFactory getFactory() { Class<?> c = getDeclaringRecord(); // create scope and factory return CoreReflectionFactory.make(c, ClassScope.make(c)); } /** * Returns an {@code AnnotatedType} object that represents the use of a type to specify * the declared type of this record component. * * @return an object representing the declared type of this record component */ public AnnotatedType getAnnotatedType() { return TypeAnnotationParser.buildAnnotatedType(typeAnnotations, SharedSecrets.getJavaLangAccess(). getConstantPool(getDeclaringRecord()), this, getDeclaringRecord(), getGenericType(), TypeAnnotation.TypeAnnotationTarget.FIELD); } /** * Returns a {@code Method} that represents the accessor for this record * component. * * @return a {@code Method} that represents the accessor for this record * component */ public Method getAccessor() { return accessor; } /** * {@inheritDoc} * <p>Note that any annotation returned by this method is a * declaration annotation. * @throws NullPointerException {@inheritDoc} */ @Override public <T extends Annotation> T getAnnotation(Class<T> annotationClass) { Objects.requireNonNull(annotationClass); return annotationClass.cast(declaredAnnotations().get(annotationClass)); } private transient volatile Map<Class<? extends Annotation>, Annotation> declaredAnnotations; private Map<Class<? extends Annotation>, Annotation> declaredAnnotations() { Map<Class<? extends Annotation>, Annotation> declAnnos; if ((declAnnos = declaredAnnotations) == null) { synchronized (this) { if ((declAnnos = declaredAnnotations) == null) { RecordComponent root = this.root; if (root != null) { declAnnos = root.declaredAnnotations(); } else { declAnnos = AnnotationParser.parseAnnotations( annotations, SharedSecrets.getJavaLangAccess() .getConstantPool(getDeclaringRecord()), getDeclaringRecord()); } declaredAnnotations = declAnnos; } } } return declAnnos; } /** * {@inheritDoc} * <p>Note that any annotations returned by this method are * declaration annotations. */ @Override public Annotation[] getAnnotations() { return getDeclaredAnnotations(); } /** * {@inheritDoc} * <p>Note that any annotations returned by this method are * declaration annotations. */ @Override public Annotation[] getDeclaredAnnotations() { return AnnotationParser.toArray(declaredAnnotations()); } /** * Returns a string describing this record component. The format is * the record component type, followed by a space, followed by the name * of the record component. * For example: * <pre> * java.lang.String name * int age * </pre> * * @return a string describing this record component */ public String toString() { return (getType().getTypeName() + " " + getName()); } /** * Returns the record class which declares this record component. * * @return The record class declaring this record component. */ public Class<?> getDeclaringRecord() { return clazz; } }
⏎ java/lang/reflect/RecordComponent.java
Or download all of them as a single archive file:
File name: java.base-17.0.5-src.zip File size: 8883851 bytes Release date: 2022-09-13 Download
2023-09-26, 90040👍, 1💬
Popular Posts:
What Is activation.jar? I heard it's related to JAF (JavaBeans Activation Framework) 1.1? The if you...
JDOM provides a solution for using XML from Java that is as simple as Java itself. There is no compe...
maven-core-3.8.6.jar is the JAR file for Apache Maven 3.8.6 Core module. Apache Maven is a software ...
What is ojdbc.jar - JDBC Driver for Oracle? ojdbc.jar is a JDBC driver from Oracle that provides dat...
What JAR files are required to run dom\Counter.java provided in the Apache Xerces package? You can f...