Skip to content

Commit ee5507f

Browse files
authored
Merge pull request #90 from smthelusive/methodhandles
Introduction to Method Handles tutorial
2 parents 2c3784f + 14f7899 commit ee5507f

File tree

3 files changed

+674
-3
lines changed

3 files changed

+674
-3
lines changed

app/data/authors.yaml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
moderator on CodeRanch which is the best java discussion forum on the web. She has moderated on topics including
2121
JDBC, Testing, IDEs, Process and Performance. She is one of the leaders of javasig.com and mentors a high school
2222
robotics team in her free time.
23-
2423
2524
- name: Cay Horstmann
2625
email: cay@horstmann.com
@@ -104,3 +103,15 @@
104103
Connor is a Java Developer and high school student from Germany with four years of programming experience.
105104
He is a top helper and community lead in Together Java, one of the largest Java communities on Discord, with over 30,000 users.
106105
Connor has worked on various Java projects, including Discord bots, Minecraft plugins and JavaFX applications.
106+
107+
- name: Nataliia Dziubenko
108+
github: smthelusive
109+
twitter: worth_exploring
110+
photo_url: https://nataliiadziubenko.com/assets/images/nataliia.png
111+
website: https://nataliiadziubenko.com/
112+
description: |
113+
Nataliia is a Senior Software Engineer at Xebia. She began her career in 2015 and has since worked with diverse
114+
technologies and domains, primarily focusing on the JVM ecosystem. Nataliia is passionate and curious about everything
115+
around JVM. She enjoys digging into the low-level concepts and diving into how things work under the hood. She also
116+
loves sharing knowledge, so she speaks at conferences such as JFall, JSpring, Voxxed Days, and Java User Groups,
117+
and writes a blog about JVM.

app/data/javadoc.json

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,7 @@
505505
"String.equals(Object)": "java.base/java/lang/String.html#equals(java.lang.Object)",
506506
"String.regionMatches(boolean,int,String,int,int)": "java.base/java/lang/String.html#regionMatches(boolean,int,java.lang.String,int,int)",
507507
"String.join(CharSequence,CharSequence)": "java.base/java/lang/String.html#join(java.lang.CharSequence,java.lang.CharSequence)",
508+
"String.valueOf(Object)": "java.base/java/lang/String.html#valueOf(java.lang.Object)",
508509

509510
"StringIndexOutOfBoundsException": "java.base/java/lang/StringIndexOutOfBoundsException.html",
510511

@@ -1406,6 +1407,40 @@
14061407
"MessageDigest": "java.base/java/security/MessageDigest.html",
14071408
"Security.getProviders()": "java.base/java/security/Security.html#getProviders()",
14081409
"Security.addProvider(java.security.Provider)": "java.base/java/security/Security.html#addProvider(java.security.Provider)",
1409-
"Security.insertProviderAt": "java.base/java/security/Security.html#insertProviderAt(java.security.Provider,int)"
1410-
1410+
"Security.insertProviderAt": "java.base/java/security/Security.html#insertProviderAt(java.security.Provider,int)",
1411+
1412+
"Method": "java.base/java/lang/reflect/Method.html",
1413+
"Field": "java.base/java/lang/reflect/Field.html",
1414+
"Member": "java.base/java/lang/reflect/Member.html",
1415+
"Lookup": "java.base/java/lang/invoke/MethodHandles.Lookup.html",
1416+
"MethodType": "java.base/java/lang/invoke/MethodType.html",
1417+
"MethodHandles": "java.base/java/lang/invoke/MethodHandles.html",
1418+
"MethodHandles.Lookup.findVirtual(Class,String,MethodType)": "java.base/java/lang/invoke/MethodHandles.Lookup.html#findVirtual(java.lang.Class,java.lang.String,java.lang.invoke.MethodType)",
1419+
"MethodHandles.Lookup.findStatic(Class,String,MethodType)": "java.base/java/lang/invoke/MethodHandles.Lookup.html#findStatic(java.lang.Class,java.lang.String,java.lang.invoke.MethodType)",
1420+
"MethodHandles.Lookup.findConstructor(Class,MethodType)": "java.base/java/lang/invoke/MethodHandles.Lookup.html#findConstructor(java.lang.Class,java.lang.invoke.MethodType)",
1421+
"MethodHandles.Lookup.findGetter(Class,String,Class)": "java.base/java/lang/invoke/MethodHandles.Lookup.html#findGetter(java.lang.Class,java.lang.String,java.lang.Class)",
1422+
"MethodHandles.Lookup.findSetter(Class,String,Class)": "java.base/java/lang/invoke/MethodHandles.Lookup.html#findSetter(java.lang.Class,java.lang.String,java.lang.Class)",
1423+
"MethodHandles.Lookup.findStaticGetter(Class,String,Class)": "java.base/java/lang/invoke/MethodHandles.Lookup.html#findStaticGetter(java.lang.Class,java.lang.String,java.lang.Class)",
1424+
"MethodHandles.Lookup.findStaticSetter(Class,String,Class)": "java.base/java/lang/invoke/MethodHandles.Lookup.html#findStaticSetter(java.lang.Class,java.lang.String,java.lang.Class)",
1425+
"MethodHandles.Lookup.findVarHandle(Class,String,Class)": "java.base/java/lang/invoke/MethodHandles.Lookup.html#findVarHandle(java.lang.Class,java.lang.String,java.lang.Class)",
1426+
"MethodHandles.Lookup.findStaticVarHandle(Class,String,Class)": "java.base/java/lang/invoke/MethodHandles.Lookup.html#findStaticVarHandle(java.lang.Class,java.lang.String,java.lang.Class)",
1427+
"MethodHandles.Lookup.unreflect(Method)": "java.base/java/lang/invoke/MethodHandles.Lookup.html#unreflect(java.lang.reflect.Method)",
1428+
"MethodHandles.publicLookup()": "java.base/java/lang/invoke/MethodHandles.html#publicLookup()",
1429+
"MethodHandles.tryFinally(MethodHandle,MethodHandle)": "java.base/java/lang/invoke/MethodHandles.html#tryFinally(java.lang.invoke.MethodHandle,java.lang.invoke.MethodHandle)",
1430+
"MethodHandles.permuteArguments(MethodHandle,MethodType,int...)": "java.base/java/lang/invoke/MethodHandles.html#permuteArguments(java.lang.invoke.MethodHandle,java.lang.invoke.MethodType,int...)",
1431+
"MethodHandles.insertArguments(MethodHandle,int,Object...)": "java.base/java/lang/invoke/MethodHandles.html#insertArguments(java.lang.invoke.MethodHandle,int,java.lang.Object...)",
1432+
"MethodHandles.filterArguments(MethodHandle,int,MethodHandle...)": "java.base/java/lang/invoke/MethodHandles.html#filterArguments(java.lang.invoke.MethodHandle,int,java.lang.invoke.MethodHandle...)",
1433+
"MethodHandles.foldArguments(MethodHandle,int,MethodHandle)": "java.base/java/lang/invoke/MethodHandles.html#foldArguments(java.lang.invoke.MethodHandle,int,java.lang.invoke.MethodHandle)",
1434+
"MethodHandles.reflectAs(Class,MethodHandle)": "java.base/java/lang/invoke/MethodHandles.html#reflectAs(java.lang.Class,java.lang.invoke.MethodHandle)",
1435+
"MethodHandles.arrayConstructor(Class)": "java.base/java/lang/invoke/MethodHandles.html#arrayConstructor(java.lang.Class)",
1436+
"MethodHandles.arrayElementSetter(Class)": "java.base/java/lang/invoke/MethodHandles.html#arrayElementSetter(java.lang.Class)",
1437+
"MethodHandles.arrayElementGetter(Class)": "java.base/java/lang/invoke/MethodHandles.html#arrayElementGetter(java.lang.Class)",
1438+
"MethodHandles.catchException(MethodHandle,Class,MethodHandle)": "java.base/java/lang/invoke/MethodHandles.html#catchException(java.lang.invoke.MethodHandle,java.lang.Class,java.lang.invoke.MethodHandle)",
1439+
"MethodHandles.arrayLength(Class)": "java.base/java/lang/invoke/MethodHandles.html#arrayLength(java.lang.Class)",
1440+
"MethodHandle.invoke(Object...)": "java.base/java/lang/invoke/MethodHandle.html#invoke(java.lang.Object...)",
1441+
"MethodHandle.invokeExact(Object...)": "java.base/java/lang/invoke/MethodHandle.html#invokeExact(java.lang.Object...)",
1442+
"MethodHandle.invokeWithArguments(Object...)": "java.base/java/lang/invoke/MethodHandle.html#invokeWithArguments(java.lang.Object...)",
1443+
"MethodHandle.asType(MethodType)": "java.base/java/lang/invoke/MethodHandle.html#asType(java.lang.invoke.MethodType)",
1444+
"VarHandle": "java.base/java/lang/invoke/VarHandle.html",
1445+
"WrongMethodTypeException": "java.base/java/lang/invoke/WrongMethodTypeException.html"
14111446
}

0 commit comments

Comments
 (0)