Try Neeva free for 1 full month here! neeva.com/codingwithjohn There's no way I could fit everything you can do with reflection in one video. So here are some more things to try! Method stuff: Get a method's name: method.getName(); Get a method's return type: method.getReturnType(); Invoke a method: method.invoke(anyParameters, listedLikeThis); If it's private or not accessible, put this before it: method.setAccessible(true); See if a method has an annotation: method.isAnnotationPresent(NameOfAnnotation.class); Get an annotation from a method: method.getAnnotation(NameOfAnnotation.class); Get a method's parameter types: method.getParameterTypes(); Get annotations on a method's parameters: method.getParameterAnnotations() Get the class that declares this method: method.getDeclaringClass(); Get all exceptions the method declares it can throw: method.getExceptionTypes(); Field stuff: Get the value of a field: field.get(objectToGetThisFieldFrom); Get the type of a field: Field.getType(); Set the value of a field: field.set(objectToSetThisFieldOn, valueToSetTheFieldTo); Get the name of a field: field.getName(); See if a field has an annotation: field.isAnnotationPresent(NameOfAnnotation.class); Get an annotation from a field: field.getAnnotation(NameOfAnnotation.class); Get the class that declares this field: method.getDeclaringClass(); Class stuff: Get a class's name: class.getName(); See if a class has an annotation: class.isAnnotationPresent(NameOfAnnotation.class); Get an annotation from a class: class.getAnnotation(NameOfAnnotation.class); Get declared fields: class.getDeclaredFields(); Get all fields, which will include fields declared in parent classes: class.getFields(); Get declared methods: class.getDeclaredMethods(); Get all methods, which will include fields declared in parent classes: class.getMethods(); This should get you started. Keep exploring to find out what more you can do!
you are without a doubt one of the best people teaching java and especially java core (I am already a working programmer but I like to watch well prepared videos as a way of knowgledge refreshment), keep up the good work man
Hey John, I have been a software engineer for 12 years but I have a poor memory:) and appreciate your tutorials for my times revisiting concepts. I revisit even basic core concepts sometimes. As my career progresses, I find myself doing more code review and oversight vs coding myself plus I also use Kotlin (Android) half the time and trying to stay up on the latest language features and concepts as the industry changes is a lifetime of learning and sometimes relearning. You have a real knack at teaching and again, much appreciated 👍
I'm in the same position where I rarely get to code myself anymore at my job. Kind of ironic that the better you get at coding the less you get to actually do it!
Encapsulation: "Look how awesome I am with all those security and stability measures". Those who just make default getters/setters: "Yeah, sure lol". Encapsulation: "It's not me being out-played it is you not being able to do stuff correctly… lol" Reflection: Encapsulation: "Screw me…".
Here are some examples how reflections are used in real applications: events - using reflections and annotation you can build an event registry. equals - sometimes in the equals method, instead of using instanceof you use this.getClass() == that.getClass() this way you don't allow child classes to be equals. generics - when you use generics, you sometimes need the Class, for example Class#getEnumConstants can give you all possible values of an enum class, and Class#isInstance can help you verify fields. there is also java code which uses reflections, for example EnumMap has a constructor which accepts Class
Reflection is a very powerful tool. I wrote an API to massively simplify the creation of command line user interface/interactivity for Java programs. I could not have done this without reflection (combined with custom annotations).
@@beerensaft413 Using reflection you can have the user call java methods directly or modify fields etc via command line. With reflection you can create a more 'direct' scripting system enabling the user to access code directly from within the script. It's very useful.
I am from Belarus and start to lern JAVA.I not so fine speak English, but you teaching very and very understanding. Thank you. I'm waiting for new lessons
I gotta be honest... This was the first UA-cam video I've ever watched with a paid promotion that actually convinced me to look into the advertised item further. Also, I love all your videos!
The biggest loss, other than performance, you will have when you use reflection is the ability to trace your code even with the most powerful IDE features. You are guaranteeing the need for special documentation, and never assume you can do that well or that others will even bother with it if you do write it. Plus, writing a domain specific language to do whatever hack you were going to do is probably easier to write, test, and debug than a reflection-based solution that is forced to adopt a Java-centric design. Personally, the only legit usage I find for reflection is creating a plug-in system.
Like a month ago I was reading some code at work that was doing reflection stuff and I thought to myself, "damn, I wish John had a Reflection video". Thanks John, you're the best in the game!
Your videos are great! I just got home from school, and without even finishing the video I've already shared it to my friend because (1) I know he'll benefit from it, and (2) I don't even have to finish it to know that it's amazing content. Thank you John!!
My favorite trick is to change the underlying fields of String. Then you can change the contents of the char[] array. Then you can use literals of these strings that you have changed. Sysytem.out.println("Yes") shows "No" intead.
Reflection is a life saver when making dynamic libraries in Java. One example would be making an auditing library for your database. You have no idea what's inside the classes your event listeners are tracking and reflection helps out tremendously.
At first, I have thought setting private fields was for security reasons (as even my university professor once told me 'if possible, make every method private for security reasons') when regarding to Java programming, how wrong am I now that I've watched this video, that is not the case (and I see why how we can use this as you've explained). Thanks for the information!
Wow, this is such a fresh shock to me learning Java. I'm studying to switch my stack from Python to Java. Your lesson do help me a lot. Thanks for a good lesson John!
It's always good to know what you can do. But... There is a reason why there are access modifiers. If a method is declared private, it was decided for a reason. Using reflection should be avoided in production code at all cost. But you said it all :) Good content
Well, when working with legacy code you dont own, sometimes there is a need - especially for testing purposes, so at least not in production. Then, it might be the best option, because that code oftentimes was not designed with (modern) testing in mind - but rewriting aint an option, not testing isnt either, and working around that problem leads to bloated and coarse grained tests - which is also not what we want.
People KEPT SAYING java is a static language, but with reflection, java is both static AND dynamic. And same thing, java have Stream API that implements Function Programming, so java is both a FP and an OOP language
I used reflection a year ago for AQA API client. John, huge thank you for this video! This video helped me to remember some things about reflection. It would a huge help to see a video about spring injection or SOLID. God bless you!
helpful ### Thumb rule - if it is possible to do something without reflection - it's best to avoid using reflection. - generally without reflection - our code will be faster - more robust - more testable - & generally just easier and more pleasant to work with - use reflection where it is necessary.
As a long-time programmer in many languages, I still love watching your videos. I recommend them to jr developers as well. Warning ** Don't use something just because it seems cool***. Keep it simple and straightforward if you can. It will be easier for you and the people who follow you into your code. I am more of a dog guy but I like cats too!
Awesome, thanks for recommending them! And you're right. Reflection or otherwise, opt for simplicity, readability, and maintainability over coolness. Though it's fun to know the cool stuff too.
Just a few weeks ago, I refactored some real old code where a declared factory was setup, and depending on when it met a condition it returned a new instance of an abstract class - in todays world, you would use spring and make each one a component and put it in the app context, and loop through a list to check if it returns true and make a new instance then, but this code, had a literal 40 if statements, and each one just returned a new instance with the same constructor. Rather than refactoring to get it to a more proper todays day in age, I at least removed all the declared new instance statements, and saved the class that would try to be instantiated, and then used reflection and the get declared constructor to make a new instance to return. Cut down the code tremendously and I didn’t have to fix oodles of tests 😄
Can you make an video differentiation between Java eight and 11… Add Java interview questions and also please add creating on micro services with respect to the spring boot..
I am a lead SWE myself and my answer to your question "When should you use Reflection?" is: never, never use Reflection. Why? because it is very very slow at the runtime, it exposes/opens your code to bugs and vulnerabilities, and also it makes your code harder to understand or work with. If you find yourself needing to use Reflection in your code to achieve or build something then your code needs a serious refactoring or redesign...
John - can you make something on DSA using Java. Nowadays DSA is one of the hot topics. Topics like dynamic programming (top down & bottom up), Stacks, Queues, Linkedlist, Trees, Graphs, Greedy algos, Backtracking, Sliding window, 2 pointers I know that's huge but an understanding on the concept by using your teaching techniques would definitely benefit.
spend your whole life learning OOP concepts like encapsulation,only to get thrown out the window. It's so crazy to think this but Java reminds me of Anakin from Star Wars . "you were the chosen one."
Thanks John!! I was looking on google something explained that it isn't that technical and you helped a lot with the "illegal reflective access" topic I was looking for :)
I had a practical use case for this at work recently User profile has different fields that are set on him, but those fields might change and also required fields (for counting the percentage of a profile status) might also change so the solution I came up with was that I have prepared a String list of field names in an xml file (we are using xml Spring in this project, not spring boot) that will be required to calculate profile status, then I counted null and non-null fields of objects that combine into a profile page which resulted in something like this at the end: Your profile is complete in 69%, fill out "phone number" next.
@@makiveli2006 i think you understood wrong what i said, i checked what xpath is and it is nowhere near my solution, that list is a spring bean so i have no idea how anyone would interfere with it at runtime, could you elaborate on that or you understood my approach wrong?
@@Inkeri94 You have a UserDTO object that does not require reflection. Path expression languages or ObjectMapper already does what you described. Dynamic Data Driven Design using XPath or JsonPath with predicates is absolutely a more viable and secure solution than reading from memory objects that are vulnerable to corruption and bad actors. An expression resolver which parses the xml or json input for specific values using predefined predicates is a better solution. Your "endpoint" is just a machine, even if it is hosted in a cloud platform.
Hey John. I used reflection in my own framework architecture but less as possible, and there was no other option. I used it to for code in the future that doesn't exist yet. So thank you for your tutorial which confirmed is used it on a good way.
I've never used reflections... But now that I learn a little bit more about it, I can see this being useful for debugging a running Java web application. JSP pages can be modified while the server is running, just like with PHP. So I could put some debug code with Reflections in it into one of those pages and mess with the main server code without having to recompile and redeploy!
I have never worked in Java, nor the need to do so (mostly C++/Python). I still watch your videos and enjoy them. You have a very good style. Do you have plans to teach C++ too? :D
Thank you very much for the complete narratives. Your videos have not only helped me with Java but also sparked my interest in becoming a developer.God bless you :)
In addition to the great content, I really want to stress how much I like that you don't use clickbaity titles and thumbnails on your videos, it has become an absolute plague on youtube. I guess it's a reflection, pun intended;), of your developer spirit to be succint and no bs when it comes to that stuff. Thanks a ton John!
Hi John , by far you are the best java teacher I have found on youtube. I request you to start making videos on Spring-Boot topics as well. I swear views will skyrocket gradually. ~ Your faithful old subscriber.
I know is a lot to ask, i really like your explanations but your content is growing and i'm struggling to navigate through it, i would be awesome if you could sort out your content! thanks for your contribution i like java but there are some topics that i would still be struggling with if i hadn't watched your videos!
A good use case for reflection is loading some class based on a string (of the package name) when you have multiple ones. Eg you might have to support something with multiple years. And you can use a year string to dynamically load a particular year class
I really like your videos. Can you do a video on the java function package i.e. Consumers, Functions etc. I see it being used in lot of Netty based projects and yet i don't understand it.
Try Neeva free for 1 full month here! neeva.com/codingwithjohn
There's no way I could fit everything you can do with reflection in one video. So here are some more things to try!
Method stuff:
Get a method's name:
method.getName();
Get a method's return type:
method.getReturnType();
Invoke a method:
method.invoke(anyParameters, listedLikeThis);
If it's private or not accessible, put this before it:
method.setAccessible(true);
See if a method has an annotation:
method.isAnnotationPresent(NameOfAnnotation.class);
Get an annotation from a method:
method.getAnnotation(NameOfAnnotation.class);
Get a method's parameter types:
method.getParameterTypes();
Get annotations on a method's parameters:
method.getParameterAnnotations()
Get the class that declares this method:
method.getDeclaringClass();
Get all exceptions the method declares it can throw:
method.getExceptionTypes();
Field stuff:
Get the value of a field:
field.get(objectToGetThisFieldFrom);
Get the type of a field:
Field.getType();
Set the value of a field:
field.set(objectToSetThisFieldOn, valueToSetTheFieldTo);
Get the name of a field:
field.getName();
See if a field has an annotation:
field.isAnnotationPresent(NameOfAnnotation.class);
Get an annotation from a field:
field.getAnnotation(NameOfAnnotation.class);
Get the class that declares this field:
method.getDeclaringClass();
Class stuff:
Get a class's name:
class.getName();
See if a class has an annotation:
class.isAnnotationPresent(NameOfAnnotation.class);
Get an annotation from a class:
class.getAnnotation(NameOfAnnotation.class);
Get declared fields:
class.getDeclaredFields();
Get all fields, which will include fields declared in parent classes:
class.getFields();
Get declared methods:
class.getDeclaredMethods();
Get all methods, which will include fields declared in parent classes:
class.getMethods();
This should get you started. Keep exploring to find out what more you can do!
😂 0:54
no i use chatgpt instead
You pretty much skipped
getField(String name)
getMethod(String name, Class... parameterTypes)
which are pretty useful
Neeva is no longer existing! that is sad, I just heard about it
gpts on the stage
I can clearly say, John is by far the best Java tutor. I really wish him as my Java teacher back in my university days.
Are you trying to say hes an old guy.
you are without a doubt one of the best people teaching java and especially java core (I am already a working programmer but I like to watch well prepared videos as a way of knowgledge refreshment), keep up the good work man
John if possible could you do a video on Spring? Your through explanations would be beneficial to all.
Yes please!!!!
Some junior is lucky to have you as a mentor
Hey John, I have been a software engineer for 12 years but I have a poor memory:) and appreciate your tutorials for my times revisiting concepts.
I revisit even basic core concepts sometimes.
As my career progresses, I find myself doing more code review and oversight vs coding myself plus I also use Kotlin (Android) half the time and trying to stay up on the latest language features and concepts as the industry changes is a lifetime of learning and sometimes relearning.
You have a real knack at teaching and again, much appreciated 👍
I'm in the same position where I rarely get to code myself anymore at my job. Kind of ironic that the better you get at coding the less you get to actually do it!
Encapsulation: "Look how awesome I am with all those security and stability measures".
Those who just make default getters/setters: "Yeah, sure lol".
Encapsulation: "It's not me being out-played it is you not being able to do stuff correctly… lol"
Reflection:
Encapsulation: "Screw me…".
Here are some examples how reflections are used in real applications:
events - using reflections and annotation you can build an event registry.
equals - sometimes in the equals method, instead of using instanceof you use this.getClass() == that.getClass() this way you don't allow child classes to be equals.
generics - when you use generics, you sometimes need the Class, for example Class#getEnumConstants can give you all possible values of an enum class, and Class#isInstance can help you verify fields.
there is also java code which uses reflections, for example EnumMap has a constructor which accepts Class
Reflection is a very powerful tool. I wrote an API to massively simplify the creation of command line user interface/interactivity for Java programs. I could not have done this without reflection (combined with custom annotations).
this is cursed behavior
if this API contains your code only why do you use reflection (your code is in front of you)
@@beerensaft413 Using reflection you can have the user call java methods directly or modify fields etc via command line. With reflection you can create a more 'direct' scripting system enabling the user to access code directly from within the script. It's very useful.
Thank you for this. You've given me a lot to reflect on.
(☞゚ヮ゚)☞
☜(゚ヮ゚☜)
I am from Belarus and start to lern JAVA.I not so fine speak English, but you teaching very and very understanding. Thank you. I'm waiting for new lessons
I am from Armenia .I want to become a programmist.I like the way you explain.Simple and understandable.
you got me with the stack overflow bit.
Yeah... Happens to all of us.
I gotta be honest... This was the first UA-cam video I've ever watched with a paid promotion that actually convinced me to look into the advertised item further. Also, I love all your videos!
The biggest loss, other than performance, you will have when you use reflection is the ability to trace your code even with the most powerful IDE features. You are guaranteeing the need for special documentation, and never assume you can do that well or that others will even bother with it if you do write it.
Plus, writing a domain specific language to do whatever hack you were going to do is probably easier to write, test, and debug than a reflection-based solution that is forced to adopt a Java-centric design. Personally, the only legit usage I find for reflection is creating a plug-in system.
Wow, ok this is the first time i have watched the whole promotion on any video. I just realized this.
Like a month ago I was reading some code at work that was doing reflection stuff and I thought to myself, "damn, I wish John had a Reflection video". Thanks John, you're the best in the game!
Your videos are great! I just got home from school, and without even finishing the video I've already shared it to my friend because (1) I know he'll benefit from it, and (2) I don't even have to finish it to know that it's amazing content.
Thank you John!!
I've seen a lot of educational videos for Java but the way you explain stuff is a next level! Thank you :)
Wow! This looks like a feature of Java I don't think I ever want to touch.
Thank you for your videos!
My favorite trick is to change the underlying fields of String. Then you can change the contents of the char[] array. Then you can use literals of these strings that you have changed. Sysytem.out.println("Yes") shows "No" intead.
Sounds like an awesome idea for a video!
Reflection is a life saver when making dynamic libraries in Java. One example would be making an auditing library for your database. You have no idea what's inside the classes your event listeners are tracking and reflection helps out tremendously.
I am so grateful for these java tutorials. Not too beginner like a majority of tutorials out there, and very well explained
Practically, this increases my confusion about the purpose of the encapsulation in Java .....
That's the best video regarding Java Reflection I've watched so far. Everything was clearly explained. Well done, mate.
Feels so cool to get an IllegalAccessException lmfao, great video John
We're Java lawbreakers
John, You are the best teacher for Java I have ever known, I hope you have more videos about advanced topics.
At first, I have thought setting private fields was for security reasons (as even my university professor once told me 'if possible, make every method private for security reasons') when regarding to Java programming, how wrong am I now that I've watched this video, that is not the case (and I see why how we can use this as you've explained). Thanks for the information!
That's typically still a good idea! But yeah you're still able to break basically every rule with reflection
Hi John. I am Ukrainian, my English is so so. But thank God I understand almoust all your speaking. Short and easy to understanding. Thank you Bro.
Wow, this is such a fresh shock to me learning Java. I'm studying to switch my stack from Python to Java. Your lesson do help me a lot. Thanks for a good lesson John!
Fantastic explanation,never heard about that. I loved the reference to better call Saul!
It's always good to know what you can do. But... There is a reason why there are access modifiers. If a method is declared private, it was decided for a reason. Using reflection should be avoided in production code at all cost. But you said it all :) Good content
Well, when working with legacy code you dont own, sometimes there is a need - especially for testing purposes, so at least not in production.
Then, it might be the best option, because that code oftentimes was not designed with (modern) testing in mind - but rewriting aint an option, not testing isnt either, and working around that problem leads to bloated and coarse grained tests - which is also not what we want.
you simply the best guide i've ever seen in java
8:21 Better call saul reference
Reflection is amazing when creating data structures using generics.
16:08 IT'S REALLY USEFULL FOR SPIGOT PLUGIN DEVELOPER O_O
now i can see and change the value of field and modify the game behavior
The Better Call Saul reference really put a smile on my face. Nice cat name. Haha
People KEPT SAYING java is a static language, but with reflection, java is both static AND dynamic. And same thing, java have Stream API that implements Function Programming, so java is both a FP and an OOP language
I just gained a new superpower, this is an amazing introduction to reflections!
Your videos are amazing, thank you!
This is some seriously good stuff John, cheers to you, awsome work mate.
John, you are good at teaching i tell you that. You make it look easier and simple.
I used reflection a year ago for AQA API client. John, huge thank you for this video! This video helped me to remember some things about reflection.
It would a huge help to see a video about spring injection or SOLID.
God bless you!
Wunderbar. Maximum respect for explaining this in such a simple way
helpful
### Thumb rule
- if it is possible to do something without reflection - it's best to avoid using reflection.
- generally without reflection
- our code will be faster
- more robust
- more testable
- & generally just easier and more pleasant to work with
- use reflection where it is necessary.
As a long-time programmer in many languages, I still love watching your videos. I recommend them to jr developers as well. Warning ** Don't use something just because it seems cool***. Keep it simple and straightforward if you can. It will be easier for you and the people who follow you into your code. I am more of a dog guy but I like cats too!
Awesome, thanks for recommending them! And you're right. Reflection or otherwise, opt for simplicity, readability, and maintainability over coolness. Though it's fun to know the cool stuff too.
You are too good to be true! I can learn anything you teach!
Just a few weeks ago, I refactored some real old code where a declared factory was setup, and depending on when it met a condition it returned a new instance of an abstract class - in todays world, you would use spring and make each one a component and put it in the app context, and loop through a list to check if it returns true and make a new instance then, but this code, had a literal 40 if statements, and each one just returned a new instance with the same constructor.
Rather than refactoring to get it to a more proper todays day in age, I at least removed all the declared new instance statements, and saved the class that would try to be instantiated, and then used reflection and the get declared constructor to make a new instance to return. Cut down the code tremendously and I didn’t have to fix oodles of tests 😄
Can you make an video differentiation between Java eight and 11… Add Java interview questions and also please add creating on micro services with respect to the spring boot..
I am a lead SWE myself and my answer to your question "When should you use Reflection?" is: never, never use Reflection.
Why? because it is very very slow at the runtime, it exposes/opens your code to bugs and vulnerabilities, and also it makes your code harder to understand or work with.
If you find yourself needing to use Reflection in your code to achieve or build something then your code needs a serious refactoring or redesign...
John - can you make something on DSA using Java. Nowadays DSA is one of the hot topics.
Topics like dynamic programming (top down & bottom up),
Stacks,
Queues,
Linkedlist,
Trees,
Graphs,
Greedy algos,
Backtracking,
Sliding window,
2 pointers
I know that's huge but an understanding on the concept by using your teaching techniques would definitely benefit.
DSA had been hot topics for a decade
Wow thats powerful stuff, this is the first time I have tried to understand reflection in any detail. Thanks for a great video.
Nice video mate! What's the intellij theme you are rocking?
Just the default theme, with the background darkened a bit I think
I have been using reflection (sparingly) for years. I never knew where the name came from until now. Thanks!
spend your whole life learning OOP concepts like encapsulation,only to get thrown out the window.
It's so crazy to think this but Java reminds me of Anakin from Star Wars .
"you were the chosen one."
By far the best explanation video I have seen on reflection. Excellent work, much appreciated!
the guidebook did, and now I finally understand the chanics!
Thanks John!! I was looking on google something explained that it isn't that technical and you helped a lot with the "illegal reflective access" topic I was looking for :)
I had a practical use case for this at work recently
User profile has different fields that are set on him, but those fields might change and also required fields (for counting the percentage of a profile status) might also change so the solution I came up with was that I have prepared a String list of field names in an xml file (we are using xml Spring in this project, not spring boot) that will be required to calculate profile status, then I counted null and non-null fields of objects that combine into a profile page which resulted in something like this at the end:
Your profile is complete in 69%, fill out "phone number" next.
Don't do that. Use XPath for dynamic inputs like that with regex. You are allowing people to inject arbitrary fields at run time in your code.
@@makiveli2006 how is that even possible if that is an endpoint?
@@makiveli2006 i think you understood wrong what i said, i checked what xpath is and it is nowhere near my solution, that list is a spring bean so i have no idea how anyone would interfere with it at runtime, could you elaborate on that or you understood my approach wrong?
@@Inkeri94 You have a UserDTO object that does not require reflection. Path expression languages or ObjectMapper already does what you described. Dynamic Data Driven Design using XPath or JsonPath with predicates is absolutely a more viable and secure solution than reading from memory objects that are vulnerable to corruption and bad actors. An expression resolver which parses the xml or json input for specific values using predefined predicates is a better solution. Your "endpoint" is just a machine, even if it is hosted in a cloud platform.
@@makiveli2006 how to corrupt a java spring xml file with bean declarations?
Mindblowing lesson!!! Never found this anywhere on the web. Thanks a lot.
Hey John. I used reflection in my own framework architecture but less as possible, and there was no other option. I used it to for code in the future that doesn't exist yet. So thank you for your tutorial which confirmed is used it on a good way.
Very well explained. Now my morning is good indeed.
I've never used reflections... But now that I learn a little bit more about it, I can see this being useful for debugging a running Java web application. JSP pages can be modified while the server is running, just like with PHP. So I could put some debug code with Reflections in it into one of those pages and mess with the main server code without having to recompile and redeploy!
You are without a doubt one of the best people teaching java! Thank you.
Thank you so much
Thanks for clear explanation.
I have never worked in Java, nor the need to do so (mostly C++/Python). I still watch your videos and enjoy them. You have a very good style. Do you have plans to teach C++ too? :D
Dear John, I'm happy for you. I'm a huge fan of yours. How old were you when you first started learning to code?
I was 18. I didn't code at all until my freshman year of college, in my first computer science class.
@@CodingWithJohn then how old are you now? 51? I'd do some research about you earlier and I dont know if it's true.
amazing video ,explain reflection thoroughly,so much easier understand than all the other guides out there on line
Thank you very much for the complete narratives. Your videos have not only helped me with Java but also sparked my interest in becoming a developer.God bless you :)
This with your annotations video, and I totally understand how SpringBoot calls functions that you had defined with their annotations.
That was a cool simple and very useful tutorial. Thank you very much.
Hey John you're the man! It's pleasant to watch your videos. I'm considering to subscribe to your java class.
Thank you John!
awesome explanation, thank you
BEST TUTORIALS EVER!!!!!!!!!!
I have no idea how i would use this ever, but when i do i will be most thankful haha
Great explanation! Thanks, John!
In addition to the great content, I really want to stress how much I like that you don't use clickbaity titles and thumbnails on your videos, it has become an absolute plague on youtube. I guess it's a reflection, pun intended;), of your developer spirit to be succint and no bs when it comes to that stuff. Thanks a ton John!
You are really a coding geek. Thank you
Video suggestion : Java Locks
Also, thank you for all of your videos, John. They are really helpful. 😄
Cool Video Title man , i love your videos!!
Hi John , by far you are the best java teacher I have found on youtube.
I request you to start making videos on Spring-Boot topics as well.
I swear views will skyrocket gradually.
~ Your faithful old subscriber.
you are a good teacher !! thanks...
Great explanation, loved it, thanks :)
Your explanation is awesome!! Thanks!
Thanks a lot for this great knowledge
Thank you for all your lectures.
I know is a lot to ask, i really like your explanations but your content is growing and i'm struggling to navigate through it, i would be awesome if you could sort out your content! thanks for your contribution i like java but there are some topics that i would still be struggling with if i hadn't watched your videos!
A good use case for reflection is loading some class based on a string (of the package name) when you have multiple ones. Eg you might have to support something with multiple years. And you can use a year string to dynamically load a particular year class
Great explanation, thanks you so much on helping me on my studies :)
Thank you! You are wonderful teacher👍
I really like your videos.
Can you do a video on the java function package i.e. Consumers, Functions etc.
I see it being used in lot of Netty based projects and yet i don't understand it.
This is super interesting, I can especially see myself use this for testing classes
Thank you! this was amazingly clear
So so so helpful, you are amazing
amazing! I find it useful when testing private methods. Do you see any obstacles except that program could run slower?
I like the irony of how neeva sponsored this video, telling us how annoying ads are.
Wow! This is awesome! Thanks! 👌👍🙏