$show=/label

Generics in Java

SHARE:

Generics in Java Generics concept is introduced in Java 5 . we will discuss a) What are Generics? b) What will happen if do not have G...

Generics in Java

Generics concept is introduced in Java 5. we will discuss

a) What are Generics?
b) What will happen if do not have Generics introduced?
c) Why do use Generics?
d) Where Generics are used in Java API?

We will first see case b.


Generics in Java




Case b: What will happen if do not have Generics introduced?

We have a scenario which one method should accept any kind of Object and have to get back that Object.

JqueryStreet class has a Object reference with setter and getter methods.

JqueryStreet class:

/**
 * @author Java-W3schools Blog
 * @File Name Street.java
 */
package org.java.w3schools.generics;

public class JqueryStreet {

    private Object object;

    public Object getObject() {
        return object;
    }

    public void setObject(Object object) {
        this.object = object;
    }
}

Refer below StreetMain class. Here we have set string and type casting to Double. Guess the output of the program.



Run the program.
/**

 * @author Java-W3schools Blog

 * @File Name StreetMain.java

 */

package org.java.w3schools.generics;


public class StreetMain {


    public static void main(String[] args) {


        JqueryStreet street = new JqueryStreet();

        street.setObject("234");

       

        Double streetNumber = (Double) street.getObject();

        System.out.println("Jquery Street Number : "+streetNumber);   

    }

}

Output:

Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double

    at org.java.w3schools.generics.StreetMain.main(StreetMain.java:14)

You may change getObject() method return type to Double and can resolve this problem. If string should be returned than have to write another method.
Compiler does not know the problem. We can not handle and determine during compile time.

We encountered ClassCastException during runtime.



c) Why do use Generics? Interview Question.


in above scenario, Problems are

1) we should not have predicted problem at compile(occurred at runtime).

2) Have to specify explicit type casting to proper class.
3) Can not reuse methods.

To evade all problem, have introduced Generics.


a) What are Generics?


A class or interface is Generic, if accept or return any type variables or reference.

We will be happy, if we can reduce the code for printing different types using single method. This can be possible using Generics.

Refer below program.


/**

 * @author Java-W3schools Blog

 * @File Name GenricExamples.java

 */

package org.java.w3schools.generics;


public class GenricExamples {


    private T element;


    public T getElement() {

        return element;

    }


    public void setElement(T element) {

        this.element = element;

    }

}






/**

 * @author Java-W3schools Blog

 * @File Name GenricExamplesMain.java

 */

package org.java.w3schools.generics;


public class GenricExamplesMain {


    public static void main(String[] args) {


        GenricExamples genricExamples = new GenricExamples<>();

        genricExamples.setElement(new Integer("1000"));

        System.out.println("Integer : " + genricExamples.getElement());


        GenricExamples genricExamplesTwo = new GenricExamples<>();

        genricExamplesTwo.setElement("2000");

        System.out.println("String : " + genricExamplesTwo.getElement());

    }

}




To make define generics, have to use "T" type declaration.



Output:


Integer : 1000
String : 2000

When we create Object for GenricExamples class, have to define which type should be acceptable. Here we can avoid compile time error instead of runtime error.

We have written only one method to the element added to GenricExamples class. This method can handle all types and no need to type cast to type.


d) Where Generics are used in Java API?


In java api, Collection api is used generics api.

ArrayList is class which is in  "java.util.ArrayList" package and resizable array. add and get methods can return any type.

Below is the example for ArrayList class.




/**

 * @author Java-W3schools Blog

 * @File Name ArrayListGenericExample.java

 */

package org.java.w3schools.generics;


import java.util.ArrayList;


public class ArrayListGenericExample {


    public static void main(String[] args) {

        ArrayList arrayList = new ArrayList<>();


        arrayList.add("One");

        arrayList.add("Two");


        for (String value : arrayList)

            System.out.println("value :: " + value);

    }

}

output:


value :: One
value :: Two

COMMENTS

BLOGGER: 3
  1. Thank you for the information, and this very helpful for me.
    Please visit Poonawalla Group, to get more information.

    ReplyDelete
  2. Thank you for the information, and this very helpful for me.
    Health is very important, and the many ways you do to be healthy.

    Please visit Poonawalla Group, to get more information about health.

    ReplyDelete
  3. perfect explanation about java programming .its very useful.thanks for your valuable information. java training in chennai | java training in velachery

    ReplyDelete
Please do not add any spam links in the comments section.

About Us

Author: Venkatesh - I love to learn and share the technical stuff.
Name

accumulo,1,ActiveMQ,2,Adsense,1,API,37,ArrayList,16,Arrays,7,Bean Creation,3,Bean Scopes,1,BiConsumer,1,Blogger Tips,1,Books,1,C Programming,1,Collection,5,Collections,22,Collector,1,Command Line,1,Compile Errors,1,Configurations,7,Constants,1,Control Statements,8,Conversions,6,Core Java,81,Corona India,1,Create,2,CSS,1,Date,3,Date Time API,4,Dictionary,1,Difference,1,Download,1,Eclipse,2,Efficiently,1,Error,1,Errors,1,Exception,1,Exceptions,3,Fast,1,Files,9,Float,1,Font,1,Form,1,Freshers,1,Function,3,Functional Interface,2,Garbage Collector,1,Generics,4,Git,4,Grant,1,Grep,1,HashMap,1,HomeBrew,2,HTML,2,HttpClient,2,Immutable,1,Installation,1,Interview Questions,5,Iterate,2,Jackson API,3,Java,29,Java 10,1,Java 11,5,Java 12,5,Java 13,2,Java 14,2,Java 8,66,Java 8 Difference,2,Java 8 Stream Conversions,2,java 8 Stream Examples,3,Java 9,1,Java Conversions,11,Java Design Patterns,1,Java Files,1,Java Program,2,Java Programs,65,java.lang,5,java.util. function,1,jQuery,1,Kotlin,10,Kotlin Conversions,3,Kotlin Programs,6,Lambda,1,lang,29,Leap Year,1,live updates,1,Logging,1,Mac OS,2,Math,1,Maven,1,Method References,1,Mockito,1,MongoDB,3,New Features,1,Operations,1,Optional,6,Oracle,5,Oracle 18C,1,Partition,1,Patterns,1,Programs,1,Property,1,Python,2,Quarkus,1,Read,1,Real Time,1,Recursion,2,Remove,2,Rest API,1,Schedules,1,Serialization,1,Servlet,1,Sort,1,Sorting Techniques,8,Spring,2,Spring Boot,23,Spring Email,1,Spring MVC,1,Streams,21,String,58,String Programs,9,String Revese,1,Swing,1,System,1,Tags,1,Threads,10,Tomcat,1,Tomcat 8,1,Troubleshoot,16,Unix,2,Updates,3,util,5,While Loop,1,
ltr
item
JavaProgramTo.com: Generics in Java
Generics in Java
https://3.bp.blogspot.com/-Gb5WyWBRUEM/XKsJ7gJmV1I/AAAAAAAABP0/_RwtFXJ3fgY9OyQUDzSTNvgud3GJUQB3wCLcBGAs/s400/Generics%2Bin%2BJava.PNG
https://3.bp.blogspot.com/-Gb5WyWBRUEM/XKsJ7gJmV1I/AAAAAAAABP0/_RwtFXJ3fgY9OyQUDzSTNvgud3GJUQB3wCLcBGAs/s72-c/Generics%2Bin%2BJava.PNG
JavaProgramTo.com
https://www.javaprogramto.com/2015/04/generics-in-java.html
https://www.javaprogramto.com/
https://www.javaprogramto.com/
https://www.javaprogramto.com/2015/04/generics-in-java.html
true
3124782013468838591
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content