Title: MethodHandle example - Java Code Geeks
Open Graph Title: MethodHandle example - Java Code Geeks
Description: public class MethodAccessExampleWithArgs { private final int i; public MethodAccessExampleWithArgs(int i_) { i = i_; } private void bar(int j, String msg)
Open Graph Description: public class MethodAccessExampleWithArgs { private final int i; public MethodAccessExampleWithArgs(int i_) { i = i_; } private void bar(int j, String msg)
Mail addresses
support@javacodegeeks.com
Opengraph URL: https://examples.javacodegeeks.com/java-development/core-java/lang/methodhandle-example/
Generator: WordPress 6.9.4
Domain: examples.javacodegeeks.com
{"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://examples.javacodegeeks.com/java-development/core-java/lang/methodhandle-example/#article","isPartOf":{"@id":"https://examples.javacodegeeks.com/java-development/core-java/lang/methodhandle-example/"},"author":{"name":"Ilias Tsagklis","@id":"https://examples.javacodegeeks.com/#/schema/person/ca18b1aa108e3bfadf717e563e0a7a6e"},"headline":"MethodHandle example","datePublished":"2012-11-11T19:35:44+00:00","mainEntityOfPage":{"@id":"https://examples.javacodegeeks.com/java-development/core-java/lang/methodhandle-example/"},"wordCount":48,"commentCount":0,"publisher":{"@id":"https://examples.javacodegeeks.com/#organization"},"image":{"@id":"https://examples.javacodegeeks.com/java-development/core-java/lang/methodhandle-example/#primaryimage"},"thumbnailUrl":"https://examples.javacodegeeks.com/wp-content/uploads/2012/12/java-logo.jpg","keywords":["core java","lang"],"articleSection":["lang"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https://examples.javacodegeeks.com/java-development/core-java/lang/methodhandle-example/#respond"]}]},{"@type":"WebPage","@id":"https://examples.javacodegeeks.com/java-development/core-java/lang/methodhandle-example/","url":"https://examples.javacodegeeks.com/java-development/core-java/lang/methodhandle-example/","name":"MethodHandle example - Java Code Geeks","isPartOf":{"@id":"https://examples.javacodegeeks.com/#website"},"primaryImageOfPage":{"@id":"https://examples.javacodegeeks.com/java-development/core-java/lang/methodhandle-example/#primaryimage"},"image":{"@id":"https://examples.javacodegeeks.com/java-development/core-java/lang/methodhandle-example/#primaryimage"},"thumbnailUrl":"https://examples.javacodegeeks.com/wp-content/uploads/2012/12/java-logo.jpg","datePublished":"2012-11-11T19:35:44+00:00","description":"public class MethodAccessExampleWithArgs { private final int i; public MethodAccessExampleWithArgs(int i_) { i = i_; } private void bar(int j, String msg)","breadcrumb":{"@id":"https://examples.javacodegeeks.com/java-development/core-java/lang/methodhandle-example/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://examples.javacodegeeks.com/java-development/core-java/lang/methodhandle-example/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://examples.javacodegeeks.com/java-development/core-java/lang/methodhandle-example/#primaryimage","url":"https://examples.javacodegeeks.com/wp-content/uploads/2012/12/java-logo.jpg","contentUrl":"https://examples.javacodegeeks.com/wp-content/uploads/2012/12/java-logo.jpg","width":150,"height":150,"caption":"Bipartite Graph"},{"@type":"BreadcrumbList","@id":"https://examples.javacodegeeks.com/java-development/core-java/lang/methodhandle-example/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://examples.javacodegeeks.com/"},{"@type":"ListItem","position":2,"name":"Java Development","item":"https://examples.javacodegeeks.com/category/java-development/"},{"@type":"ListItem","position":3,"name":"Core Java","item":"https://examples.javacodegeeks.com/category/java-development/core-java/"},{"@type":"ListItem","position":4,"name":"lang","item":"https://examples.javacodegeeks.com/category/java-development/core-java/lang/"},{"@type":"ListItem","position":5,"name":"MethodHandle example"}]},{"@type":"WebSite","@id":"https://examples.javacodegeeks.com/#website","url":"https://examples.javacodegeeks.com/","name":"Java Code Geeks","description":"Java Examples and Code Snippets","publisher":{"@id":"https://examples.javacodegeeks.com/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://examples.javacodegeeks.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://examples.javacodegeeks.com/#organization","name":"Exelixis Media P.C.","url":"https://examples.javacodegeeks.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://examples.javacodegeeks.com/#/schema/logo/image/","url":"https://examples.javacodegeeks.com/wp-content/uploads/2022/06/exelixis-logo.png","contentUrl":"https://examples.javacodegeeks.com/wp-content/uploads/2022/06/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https://examples.javacodegeeks.com/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/javacodegeeks","https://x.com/javacodegeeks"]},{"@type":"Person","@id":"https://examples.javacodegeeks.com/#/schema/person/ca18b1aa108e3bfadf717e563e0a7a6e","name":"Ilias Tsagklis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://examples.javacodegeeks.com/#/schema/person/image/","url":"https://examples.javacodegeeks.com/wp-content/uploads/2016/01/Ilias-Tsagklis_avatar_1454249217-96x96.jpg","contentUrl":"https://examples.javacodegeeks.com/wp-content/uploads/2016/01/Ilias-Tsagklis_avatar_1454249217-96x96.jpg","caption":"Ilias Tsagklis"},"description":"Ilias is a software developer turned online entrepreneur. He is co-founder and Executive Editor at Java Code Geeks.","sameAs":["http://www.iliastsagklis.com/","https://www.linkedin.com/in/iliastsagklis"],"url":"https://examples.javacodegeeks.com/author/ilias-tsagklis/"}]}
{"@context":"http:\/\/schema.org","@type":"BreadcrumbList","@id":"#Breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"item":{"name":"Home","@id":"https:\/\/examples.javacodegeeks.com\/"}},{"@type":"ListItem","position":2,"item":{"name":"Java Development","@id":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/"}},{"@type":"ListItem","position":3,"item":{"name":"Core Java","@id":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/core-java\/"}},{"@type":"ListItem","position":4,"item":{"name":"lang","@id":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/core-java\/lang\/"}}]}
{"@context":"http:\/\/schema.org","@type":"Article","dateCreated":"2012-11-11T19:35:44+02:00","datePublished":"2012-11-11T19:35:44+02:00","dateModified":"2012-11-11T19:35:44+02:00","headline":"MethodHandle example","name":"MethodHandle example","keywords":"core java,lang","url":"https:\/\/examples.javacodegeeks.com\/java-development\/core-java\/lang\/methodhandle-example\/","description":"public class MethodAccessExampleWithArgs { private final int i; public MethodAccessExampleWithArgs(int i_) { i = i_; } private void bar(int j, String msg) { System.out.println(\"Private Method 'bar' su","copyrightYear":"2012","articleSection":"lang","articleBody":"\n\n\n\n\npublic class MethodAccessExampleWithArgs {\n private final int i;\n \n public MethodAccessExampleWithArgs(int i_) {\n i = i_;\n }\n \n private void bar(int j, String msg) {\n System.out.println(\"Private Method 'bar' successfully accessed : \"\n + i + \", \" + j + \" : \" + msg + \"!\");\n }\n \n \/\/ Using Reflection\n public static Method makeMethod() {\n Method meth = null;\n \n try {\n Class[] argTypes = new Class[] { int.class, String.class };\n \n meth = MethodAccessExampleWithArgs.class.getDeclaredMethod(\"bar\",\n argTypes);\n \n meth.setAccessible(true);\n } catch (IllegalArgumentException e) {\n e.printStackTrace();\n } catch (NoSuchMethodException e) {\n e.printStackTrace();\n } catch (SecurityException e) {\n e.printStackTrace();\n }\n \n return meth;\n }\n \n \/\/ Using method handles\n public static MethodHandle makeMh() {\n MethodHandle mh;\n \n MethodType desc = MethodType.methodType(void.class, int.class,\n String.class);\n \n try {\n mh = MethodHandles.lookup().findVirtual(\n MethodAccessExampleWithArgs.class, \"bar\", desc);\n System.out.println(\"mh=\" + mh);\n } catch (NoAccessException e) {\n throw (AssertionError) new AssertionError().initCause(e);\n }\n return mh;\n }\n}\nFollowing, is a class meant to test the two approaches of accessing the private method “bar” : \npublic class MethodAccessMain {\n \n private static void withReflectionArgs() {\n Method meth = MethodAccessExampleWithArgs.makeMethod();\n \n MethodAccessExampleWithArgs mh0 = new MethodAccessExampleWithArgs(0);\n MethodAccessExampleWithArgs mh1 = new MethodAccessExampleWithArgs(1);\n \n try {\n System.out.println(\"Invocation using Reflection\");\n meth.invoke(mh0, 5, \"Jabba the Hutt\");\n meth.invoke(mh1, 7, \"Boba Fett\");\n } catch (IllegalAccessException e) {\n e.printStackTrace();\n } catch (IllegalArgumentException e) {\n e.printStackTrace();\n } catch (InvocationTargetException e) {\n e.printStackTrace();\n }\n }\n \n private static void withMhArgs() {\n MethodHandle mh = MethodAccessExampleWithArgs.makeMh();\n \n MethodAccessExampleWithArgs mh0 = new MethodAccessExampleWithArgs(0);\n MethodAccessExampleWithArgs mh1 = new MethodAccessExampleWithArgs(1);\n \n try {\n System.out.println(\"Invocation using Method Handle\");\n mh.invokeExact(mh0, 42, \"R2D2\");\n mh.invokeExact(mh1, 43, \"C3PO\");\n } catch (Throwable e) {\n e.printStackTrace();\n }\n }\n \n public static void main(String[] args) {\n withReflectionArgs();\n withMhArgs();\n }\n}\n\nRelated Article: \n \n \n A glimpse at Java 7 MethodHandle and its usage \n \n\nReferences : \nA glimpse at MethodHandle and its usage from our JCG partners at Java 7 Developer Blog \nThe Well-Grounded Java Developer \n\n\n","publisher":{"@id":"#Publisher","@type":"Organization","name":"Examples Java Code Geeks","logo":{"@type":"ImageObject","url":"\/wp-content\/uploads\/2013\/05\/JavaCodeGeeks-logo.png"},"sameAs":["https:\/\/feeds.feedburner.com\/examplesjavacodegeeks","https:\/\/www.facebook.com\/javacodegeeks","https:\/\/twitter.com\/javacodegeeks","https:\/\/www.linkedin.com\/groups\/3810709\/","https:\/\/www.youtube.com\/channel\/UCxoUc7Rar2q90Gu0nT2ffuQ","https:\/\/github.com\/javacodegeeks\/"]},"sourceOrganization":{"@id":"#Publisher"},"copyrightHolder":{"@id":"#Publisher"},"mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/core-java\/lang\/methodhandle-example\/","breadcrumb":{"@id":"#Breadcrumb"}},"author":{"@type":"Person","name":"Ilias Tsagklis","url":"https:\/\/examples.javacodegeeks.com\/author\/ilias-tsagklis\/"},"image":{"@type":"ImageObject","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg","width":1200,"height":150}}
| og:locale | en_US |
| og:type | article |
| og:site_name | Examples Java Code Geeks |
| article:publisher | https://www.facebook.com/javacodegeeks |
| article:published_time | 2012-11-11T19:35:44+00:00 |
| og:image | https://examples.javacodegeeks.com/wp-content/uploads/2012/12/java-logo.jpg |
| og:image:width | 150 |
| og:image:height | 150 |
| og:image:type | image/jpeg |
| author | Ilias Tsagklis |
| twitter:card | summary_large_image |
| twitter:creator | @javacodegeeks |
| twitter:label1 | Written by |
| twitter:data1 | Ilias Tsagklis |
| twitter:label2 | Est. reading time |
| twitter:data2 | 1 minute |
| None | IE=edge |
| msapplication-TileImage | https://examples.javacodegeeks.com/wp-content/uploads/2013/05/JavaCodeGeeks-favIcon.png |
Links:
Viewport: width=device-width, initial-scale=1.0
Robots: index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1