Package com.cedarsoftware.io.reflect
Class Accessor
java.lang.Object
com.cedarsoftware.io.reflect.Accessor
High-performance field accessor utility that automatically adapts to different JDK versions
for optimal performance and compatibility.
This class uses the java.version system property to automatically detect the
JDK version and select the most appropriate field access strategy:
- JDK 8-16: Uses
MethodHandlefor field access withField.get()fallback - JDK 17+: Uses
VarHandlefor improved performance and module system compatibility
- Author:
- Kenny Partlow (kpartlow@gmail.com)
Copyright (c) Cedar Software LLC
Licensed 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
License
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.
-
Method Summary
Modifier and TypeMethodDescriptionstatic AccessorcreateFieldAccessor(Field field, String uniqueFieldName) static AccessorcreateMethodAccessor(Field field, String methodName, String uniqueFieldName) Class<?>The display name will be either the underlying field name or the underlying method name from which the method handle was created.Class<?>The unique field name if two fields have the same name in the same class structure, the more parent field will be qualified with the ShortName of the Declaring classbooleanisMethod()booleanisPublic()
-
Method Details
-
createFieldAccessor
-
createMethodAccessor
-
retrieve
-
getMethodHandle
-
isMethod
public boolean isMethod() -
getFieldType
-
getDeclaringClass
-
getGenericType
-
getActualFieldName
-
getUniqueFieldName
The unique field name if two fields have the same name in the same class structure, the more parent field will be qualified with the ShortName of the Declaring class -
getFieldOrMethodName
The display name will be either the underlying field name or the underlying method name from which the method handle was created. -
isPublic
public boolean isPublic()
-