JavaRush /ื‘ืœื•ื’ Java /Random-HE /ื”ืคืกืงืช ืงืคื” ืžืก' 174. ื“ืจื›ื™ื ืฉื•ื ื•ืช ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ ื‘-Java.Strin...

ื”ืคืกืงืช ืงืคื” ืžืก' 174. ื“ืจื›ื™ื ืฉื•ื ื•ืช ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ ื‘-Java.String ืœ-Int ื‘-Java - ื›ื™ืฆื“ ืœื”ืžื™ืจ ืžื—ืจื•ื–ืช ืœืžืกืคืจ ืฉืœื

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”

ื“ืจื›ื™ื ืฉื•ื ื•ืช ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ ื‘-Java

ืžืงื•ืจ: ื‘ื™ื ื•ื ื™ ื‘ืžื“ืจื™ืš ื–ื”, ื ืœืžื“ ื“ืจื›ื™ื ืฉื•ื ื•ืช ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ ื‘-Java. ื”ืคืกืงืช ืงืคื” ืžืก' 174.  ื“ืจื›ื™ื ืฉื•ื ื•ืช ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ ื‘-Java.String ืœ-Int ื‘-Java - ื›ื™ืฆื“ ืœื”ืžื™ืจ ืžื—ืจื•ื–ืช ืœืžืกืคืจ ืฉืœื - 1ืื•ื‘ื™ื™ืงื˜ Java ื”ื•ื ืžื•ืคืข ืฉืœ ืžื—ืœืงืช Java. ืœื›ืœ ืื•ื‘ื™ื™ืงื˜ ื™ืฉ ืžืฆื‘, ื”ืชื ื”ื’ื•ืช ื•ืžื–ื”ื”. ืฉื“ื•ืช (ืžืฉืชื ื™ื) ืžืื—ืกื ื™ื ืืช ื”ืžืฆื‘ ืฉืœ ืื•ื‘ื™ื™ืงื˜, ื‘ืขื•ื“ ืฉืฉื™ื˜ื•ืช (ืคื•ื ืงืฆื™ื•ืช) ืžืฆื™ื’ื•ืช ืืช ื”ืคืขื•ืœื” ืฉืœ ืื•ื‘ื™ื™ืงื˜. ืžื—ืœืงื•ืช ืžืฉืžืฉื•ืช ื›"ืฉืจื˜ื•ื˜ื™ื" ืฉืžื”ื ื ื•ืฆืจื™ื ืžื•ืคืขื™ ืื•ื‘ื™ื™ืงื˜ ื‘ื–ืžืŸ ืจื™ืฆื”.

ื™ืฆื™ืจืช ืื•ื‘ื™ื™ืงื˜ ื‘-Java

ื™ืฆื™ืจืช ืื•ื‘ื™ื™ืงื˜ ื”ื•ื ืชื”ืœื™ืš ืฉืœ ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ ืœืื—ืกื•ืŸ ื ืชื•ื ื™ื ื‘ืฉื“ื•ืช ืžื—ืœืงื” (ื ืงืจืื™ื ื’ื ืžืฉืชื ื™ื). ืชื”ืœื™ืš ื–ื” ื ืงืจื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื™ืฆื™ืจืช ืžื•ืคืข ืฉืœ ืžื—ืœืงื”. ื™ืฉื ืŸ ืืจื‘ืข ื“ืจื›ื™ื ืฉื•ื ื•ืช ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ื™ื ื‘-Java:
  1. ื‘ืืžืฆืขื•ืช ืžื™ืœืช ื”ืžืคืชื— ื”ื—ื“ืฉื”
  2. ืฉื™ื˜ื” newInstance()
  3. ืฉื™ื˜ืช clone().
  4. ื‘ื™ื˜ื•ืœ ืกื“ืจื” ืฉืœ ื—ืคืฅ
ืขื›ืฉื™ื• ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื›ืœ ืื—ืช ืžื”ืฉื™ื˜ื•ืช ืฉื”ื•ื–ื›ืจื• ื‘ืคื™ืจื•ื˜.

ืžื™ืœืช ืžืคืชื— ื—ื“ืฉื”

ื–ื•ื”ื™ ื”ื“ืจืš ื”ื ืคื•ืฆื” ื‘ื™ื•ืชืจ ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ ื‘-Java. ืžื™ืœืช ื”ืžืคืชื— ื”ื—ื“ืฉื” ื™ื•ืฆืจืช ืžื•ืคืข ืฉืœ ืžื—ืœืงื” ืขืœ ื™ื“ื™ ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ ืœืžื•ืคืข ื—ื“ืฉ ืžื”ืกื•ื’ ืฉืฆื•ื™ืŸ. ืœืื—ืจ ื—ื“ืฉ ืžื’ื™ืข ื”ืงื•ื ืกื˜ืจื•ืงื˜ื•ืจ - ืฉื™ื˜ื” ืžื™ื•ื—ื“ืช ื”ืื—ืจืื™ืช ืขืœ ื™ืฆื™ืจืช ืื•ื‘ื™ื™ืงื˜ ื•ืืชื—ื•ืœ ื”ืฉื“ื•ืช ืฉืœ ื”ืื•ื‘ื™ื™ืงื˜ ืฉื ื•ืฆืจ. ืื•ื‘ื™ื™ืงื˜ ื ื•ืฆืจ ืขื ื”ืื•ืคืจื˜ื•ืจ ื”ื—ื“ืฉ ื•ืžืื•ื—ืœ ืขื ื‘ื ืื™. ื”ื ื” ื“ื•ื’ืžื” ืœื™ืฆื™ืจืช ืื•ื‘ื™ื™ืงื˜ Java ืขื ื”ืื•ืคืจื˜ื•ืจ ื”ื—ื“ืฉ :
Date today = new Date();
ื‘ื™ื˜ื•ื™ ื–ื” ื™ื•ืฆืจ ืื•ื‘ื™ื™ืงื˜ Date ื—ื“ืฉ ( Date ื”ื•ื ืžื—ืœืงื” ื‘ืชื•ืš ื”ื—ื‘ื™ืœื” java.util ). ืกืขื™ืฃ ื™ื—ื™ื“ ื–ื” ื‘ืงื•ื“ ืžื‘ืฆืข ืฉืœื•ืฉ ืคืขื•ืœื•ืช: ื”ื›ืจื–ื”, ืžื•ืคืข ื•ืื™ืชื—ื•ืœ. Date today ื”ื™ื ื”ืฆื”ืจืช ืžืฉืชื ื” ื”ืžื™ื™ื“ืขืช ืืช ื”ืžื”ื“ืจ ืฉื”ื™ื•ื ื™ืคื ื” ืœืื•ื‘ื™ื™ืงื˜ ืžืกื•ื’ Date . ื”ืื•ืคืจื˜ื•ืจ ื”ื—ื“ืฉ ืžืคืขื™ืœ ืืช ื”ืžื—ืœืงื” Date (ื™ื•ืฆืจ ืื•ื‘ื™ื™ืงื˜ Date ื—ื“ืฉ ื‘ื–ื™ื›ืจื•ืŸ), ื•- Date() ืžืืชื—ืœ ืืช ื”ืื•ื‘ื™ื™ืงื˜. ืฉืงื•ืœ ืืช ื”ื“ื•ื’ืžื” ืฉืœื”ืœืŸ:
public class Person {
    private String name;
    private int uid;

    public Person() {
        this.name = "Michael Cole";
        this.uid = 101;
    }

    public Person(String name, int uid) {
        super();
        this.name = name;
        this.uid = uid;
    }

    // getters and setters...

    public static void main(String[] args) {

        Person p1 = new Person();
        Person p2 = new Person("John Bodgan", 102);
        System.out.println("Name: " + p1.getName() + " UID: " + p1.getUid());
        System.out.println("Name: " + p2.getName() + " UID: " + p2.getUid());
    }
}
ืžืงื•ื“ ื–ื” ืื ื• ื™ื•ืฆืจื™ื ืื•ื‘ื™ื™ืงื˜ Person ื‘ืืžืฆืขื•ืช ืžื™ืœืช ื”ืžืคืชื— ื”ื—ื“ืฉื” :
  • ื”ืื•ื‘ื™ื™ืงื˜ p1 ืงื•ืจื ืœื‘ื ืื™ ืœืœื ืคืจืžื˜ืจื™ื ืขื ืขืจืš ืฉื ื”ืžืฉืชื ื” ืžื•ื’ื“ืจ ืœ-"Michael Cole" ื•ื”-UID ืžื•ื’ื“ืจ ืœ-101.
  • ื”ืื•ื‘ื™ื™ืงื˜ p2 ืงื•ืจื ืœื‘ื ืื™ ื‘ืขืœ ื”ืคืจืžื˜ืจื™ื, ืฉื ื”ื•ื ืžืขื‘ื™ืจ ืœื‘ื ืื™ ืืช ื”ืขืจืš "John Bodgan" ื•-102. ืœืื—ืจ ืžื›ืŸ ืžื•ืงืฆื™ื ืœืขืจื›ื™ื ืืœื• ืฉื ืžืฉืชื ื” ื•-UID.

ืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ืช newInstance()

ืฉื™ื˜ืช newInstance() ื‘-Java ืžืฉืžืฉืช ืœื™ืฆื™ืจืช ืžื•ืคืข ื“ื™ื ืžื™ ืฉืœ ืื•ื‘ื™ื™ืงื˜ ืฉืœ ืžื—ืœืงื” ื ืชื•ื ื”. ื™ืฉื ื ืฉื ื™ ืฉื™ืžื•ืฉื™ื ืกื˜ื ื“ืจื˜ื™ื™ื ื‘ืฉื™ื˜ืช newInstance() :
  • ืฉื™ื˜ืช newInstance() ืž- Java.lang.Class API
  • ืฉื™ื˜ืช newInstance() ืž- Java.lang.reflect.Constructor API

ืฉื™ืžื•ืฉ ื‘-newInstance() ืž-Class API

ื›ื“ื™ ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ ืฉืœ ืžื—ืœืงื” ื‘ื–ืžืŸ ืจื™ืฆื”, ืขืœื™ื ื• ืœืงืจื•ื ืœืžืชื•ื“ื” newInstance() ืž-Class API, ืืฉืจ ืžื—ื–ื™ืจื” ืื•ื‘ื™ื™ืงื˜ ืฉืœ ืื•ืชื” ืžื—ืœืงื”. ืฉื™ื˜ืช newInstance() ืฉืœ ื”ืžื—ืœืงื” java.lang.Class ืื™ื ื” ืœื•ืงื—ืช ืคืจืžื˜ืจื™ื ืื• ืืจื’ื•ืžื ื˜ื™ื ื•ื ื™ืชืŸ ืœืงืจื•ื ืœื” ื‘ื ืื™ ืœืœื ืืจื’ื•ืžื ื˜ ืขื‘ื•ืจ ื”ืžื—ืœืงื” ื”ื–ื•. ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ืงื•ื“ ืœื“ื•ื’ืžื” ืœื™ืฆื™ืจืช ืื•ื‘ื™ื™ืงื˜ ืฉืœ ื”ืžื—ืœืงื” Person ื‘ืืžืฆืขื•ืช ืฉื™ื˜ืช newInstance() ืฉืœ ื”ืžื—ืœืงื” java.lang.Class :
public class Person {
    private String name;
    private int uid;

    public Person() {
        this.name = "Carl Max";
        this.uid = 101;
    }

   // getters and setters...
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        Class c = Class.forName("com.medium.option2.Person");
        @SuppressWarnings("deprecation")
        Person p = (Person) c.newInstance();
        System.out.println("Name: " + p.getName());
        System.out.println("UID: " + p.getUid());
    }
}
Class.forName (ื”ืฉื ื”ืžืœื ืฉืœ ื”ืžื—ืœืงื”) ื˜ื•ืขืŸ ืžื—ืœืงื” ื‘ืฉื Person , ื•ืื– newInstance() ื™ื•ืฆืจ ืื•ื‘ื™ื™ืงื˜ ื—ื“ืฉ ืžืกื•ื’ Person ื•ืžื—ื–ื™ืจ ืืœื™ื• ื”ืคื ื™ื”. ื›ืขืช, ื‘ืืžืฆืขื•ืช ื”ื”ืคื ื™ื” ืœ-Person ืœ- p , ืื ื• ื™ื›ื•ืœื™ื ืœืงืจื•ื ืœื• getters() ื•- setter() ื›ื“ื™ ืœื‘ืฆืข ืคืขื•ืœื•ืช ืžืกื•ื™ืžื•ืช. ืฉื™ืžื• ืœื‘:
  • ื’ื Class.forName() ื•ื’ื newIstance() ื–ื•ืจืงื™ื ื—ืจื™ื’ื™ื ืฉื™ืฉ ืœื˜ืคืœ ื‘ื”ื ื‘ืืžืฆืขื•ืช try and catch blocks ืื• ืžื™ืœืช ื”ืžืคืชื— throws .
  • ืฉื™ื˜ืช newInstance() ืž-Class API ื”ื•ืฆืื” ืžืฉื™ืžื•ืฉ ืžืื– Java 9.

ืฉื™ืžื•ืฉ ื‘-newInstance() ืž-Constructor API

ืฉื™ื˜ืช newInstance() ืฉืœ ื”ืžื—ืœืงื” Constructor ( java.lang.reflect.Constructor ) ื“ื•ืžื” ืœืฉื™ื˜ืช newInstance() ืฉืœ ื”ืžื—ืœืงื” Class , ืืœื ืฉื”ื™ื ืžืงื‘ืœืช ืคืจืžื˜ืจื™ื ืขื‘ื•ืจ ื‘ื ืื™ื ืขื ืคืจืžื˜ืจื™ื. ื‘ื•ืื• ื ื“ื’ื™ื ื’ื™ืฉื” ื–ื• ืขืœ ื™ื“ื™ ื™ืฆื™ืจืช ืื•ื‘ื™ื™ืงื˜ ืฉืœ ื”ืžื—ืœืงื” Person ื‘ืืžืฆืขื•ืช ืฉื™ื˜ืช newInstance() ืฉืœ ื”ืžื—ืœืงื” java.lang.reflect.Constructor :
public class PersonTwo {
    private String name;
    private int uid;

    public PersonTwo() {
        this.name = "Maya Kumari";
        this.uid = 101;
    }

    public PersonTwo(String name) {
        this.name = name;
        this.uid = 102;
    }

    public PersonTwo(String name, Integer uid) {
        this.name = name;
        this.uid = uid;
    }

    // getters and setters...
    public static void main(String[] args) {
        try {
            Class.forName("com.medium.option2.PersonTwo");

            Constructor c1 = PersonTwo.class.getConstructor();
            PersonTwo p1 = (PersonTwo) c1.newInstance();
            System.out.println("Name: " + p1.getName());
            System.out.println("UID: " + p1.getUid());

            Constructor c2 = PersonTwo.class.getConstructor(String.class);
            PersonTwo p2 = (PersonTwo) c2.newInstance("James Gunn");
            System.out.println("Name: " + p2.getName());
            System.out.println("UID: " + p2.getUid());

            Constructor c3 = PersonTwo.class.getConstructor(String.class, Integer.class);
            PersonTwo p3 = (PersonTwo) c3.newInstance("Mark Brown", 103);
            System.out.println("Name: " + p3.getName());
            System.out.println("UID: " + p3.getUid());

        } catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}
ื‘ืงื•ื“ ืฉืœืžืขืœื”, ืจืืฉื™ืช ืขืœื™ื ื• ืœื˜ืขื•ืŸ ืืช ื”ืžื—ืœืงื” ื‘ืืžืฆืขื•ืช ื”ืฉื™ื˜ื” Class.forName() . ืœืื—ืจ ืžื›ืŸ, ื ืงืจื ืœืฉื™ื˜ืช getConstructor() ื›ื“ื™ ืœื”ืชืื™ื ืืช ืกื•ื’ื™ ื”ื ืชื•ื ื™ื ืฉืœ ื”ืคืจืžื˜ืจื™ื ืฉื”ื•ืขื‘ืจื•. ืœื‘ืกื•ืฃ, ื‘ืฉื™ื˜ืช newInstance() ื ืขื‘ื™ืจ ืืช ื”ืคืจืžื˜ืจ ื”ื ื“ืจืฉ ( null ืื ืื™ืŸ ืืจื’ื•ืžื ื˜). ื”ืฉื™ื˜ื” newInstance() ืชื—ื–ื™ืจ ืื•ื‘ื™ื™ืงื˜ ื—ื“ืฉ ืฉืœ ื”ืžื—ืœืงื” PersonTwo ืขืœ ื™ื“ื™ ืงืจื™ืื” ืœื‘ื ืื™ ื”ืžืชืื™ื.

ืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ืช clone()

ืฉื™ื˜ืช clone() ื”ื™ื ื—ืœืง ืžื”ืžื—ืœืงื” Object ื•ืžืฉืžืฉืช ืœื™ืฆื™ืจืช ืขื•ืชืง ืฉืœ ืื•ื‘ื™ื™ืงื˜ ืงื™ื™ื. ื–ื” ื™ื•ืฆืจ ืื•ื‘ื™ื™ืงื˜ ืฉืœ ื”ืžื—ืœืงื” ืžื‘ืœื™ ืœืงืจื•ื ืœืฉื•ื ื‘ื ืื™ ืžื—ืœืงื”. ื›ื“ื™ ืœืฉื›ืคืœ ืฉื™ื˜ื”, ื”ืžื—ืœืงื” ื”ืžืชืื™ืžื” ื—ื™ื™ื‘ืช ืœื™ื™ืฉื ืืช ื”ืžืžืฉืง Cloneable , ืฉื”ื•ื ืžืžืฉืง ืกืžืŸ. ื›ืขืช ื ื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ ืฉืœ ื”ืžื—ืœืงื” Person ื•ืœืื—ืจ ืžื›ืŸ ื ืฉื›ืคืœ ืื•ืชื• ืœืื•ื‘ื™ื™ืงื˜ ืื—ืจ ืฉืœ ื”ืžื—ืœืงื” Person :
public class Person implements Cloneable {
    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }

    private String name;
    private int uid;

    public Person(String name, int uid) {
        super();
        this.name = name;
        this.uid = uid;
    }

    // getters and setters...

    public static void main(String[] args) {
        Person p1 = new Person("Ryan", 101);
        try {
            Person p2 = (Person) p1.clone();
            System.out.println("Name: " + p2.getName());
            System.out.println("UID: " + p2.getUid());
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }

    }
}
ื”ืขืจื”. ื”ืื•ื‘ื™ื™ืงื˜ ื”ืžืฉื•ื‘ื˜ ื™ืคื ื” ืœืื•ืชื• ืื•ื‘ื™ื™ืงื˜ ืžืงื•ืจื™ ื‘ืืžืฆืขื•ืช ื”ืคื ื™ื” p2 . ืขื ื–ืืช, ืœืื•ื‘ื™ื™ืงื˜ ื”ืžืฉื•ื‘ื˜ ืชื”ื™ื” ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ ื ืคืจื“ืช. ืžืฉืžืขื•ืช ื”ื“ื‘ืจ ื”ื™ื ืฉื›ืœ ืฉื™ื ื•ื™ ืฉื ืขืฉื” ื‘ืื•ื‘ื™ื™ืงื˜ ื”-Person ืฉืืœื™ื• ืžืชื™ื™ื—ืก p2 ืœื ื™ืฉื ื” ืืช ืื•ื‘ื™ื™ืงื˜ ื”-Personal ื”ืžืงื•ืจื™ ืฉืืœื™ื• ื”ืคื ื” p1 . ื”ืกื™ื‘ื” ืœื›ืš ื”ื™ื ืฉืฉื™ื˜ืช clone() ื™ื•ืฆืจืช ืขื•ืชืง ืจื“ื•ื“ ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื.

ืฉื™ืžื•ืฉ ื‘ืกื™ื“ืจื™ืืœื™ื–ืฆื™ื” ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื

ื“ื”-ืกืจื™ืืœื™ื–ืฆื™ื” ืฉืœ ืื•ื‘ื™ื™ืงื˜ ื”ื•ื ืชื”ืœื™ืš ืฉืœ ื—ื™ืœื•ืฅ ืื•ื‘ื™ื™ืงื˜ ืžืกื“ืจื” ืฉืœ ื–ืจืžื™ ื‘ืชื™ื. ืกืจื™ืืœื™ื–ืฆื™ื” ืขื•ืฉื” ืืช ื”ื”ื™ืคืš. ืžื˜ืจืชื• ื”ืขื™ืงืจื™ืช ื”ื™ื ืœืื—ื–ืจ ืื•ื‘ื™ื™ืงื˜ ืžืื•ื—ืกืŸ ืžืžืกื“ ื”ื ืชื•ื ื™ื/ืจืฉืช ื‘ื—ื–ืจื” ืœื–ื™ื›ืจื•ืŸ. ืื ืื ื—ื ื• ืจื•ืฆื™ื ืœืขืฉื•ืช ืกื“ืจื” ืื• ื“ื”-ืกืจื™ืืœื™ื–ืฆื™ื” ืฉืœ ืื•ื‘ื™ื™ืงื˜, ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื™ื™ืฉื ืืช ื”ืžืžืฉืง Serializable (ืžืžืฉืง ืืกื™ืžื•ืŸ). ืฉืงื•ืœ ืืช ื”ื“ื•ื’ืžื” ืฉืœื”ืœืŸ:
public class PersonDriver {

    public static void main(String[] args) {
        Person p1 = new Person("Max Payne", 101);
        FileOutputStream fileOutputStream;
        try {
            fileOutputStream = new FileOutputStream("link to text file");
            ObjectOutputStream outputStream = new ObjectOutputStream(fileOutputStream);
            outputStream.writeObject(p1);
            outputStream.flush();
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        FileInputStream fileInputStream;
        try {
            fileInputStream = new FileInputStream("link to text file");
            ObjectInputStream inputStream = new ObjectInputStream(fileInputStream);
            Person p2 = (Person) inputStream.readObject();
            System.out.println("Name: " + p2.getName());
            System.out.println("UID: " + p2.getUid());
            inputStream.close();
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}
ื›ืืŸ ืื ื• ืžืกื“ืจื™ื ืœืจืืฉื•ื ื” ืืช ื”ืื•ื‘ื™ื™ืงื˜ Person ืขืœ ื™ื“ื™ ื”ืคื ื™ื” p1 ืœืงื•ื‘ืฅ ื˜ืงืกื˜. ื”ืฉื™ื˜ื” writeObject() ืชื›ืชื•ื‘ ืืช ื–ืจื ื”ื‘ื™ื˜ื™ื ืฉืœ ื”ืื•ื‘ื™ื™ืงื˜ ืœืงื•ื‘ืฅ ื˜ืงืกื˜. ืœืื—ืจ ืžื›ืŸ, ื‘ืืžืฆืขื•ืช ื“ื”-ืกืจื™ืืœื™ื–ืฆื™ื” ืฉืœ ืื•ื‘ื™ื™ืงื˜, ืื ื• ืžื—ืœืฆื™ื ืืช ืื•ื‘ื™ื™ืงื˜ ื”- Person ื‘ื—ื–ืจื” ืœืชื•ืš p2 . ื‘ืื•ืคืŸ ื“ื•ืžื”, ื”ืฉื™ื˜ื” readObject() ืชืงืจื ืื•ื‘ื™ื™ืงื˜ ืžื–ืจื ื”ืงืœื˜ ืฉืœ ื”ืื•ื‘ื™ื™ืงื˜. ืœื‘ืกื•ืฃ, ื ื“ืคื™ืก ืืช ื”ื ืชื•ื ื™ื ืžืื•ื‘ื™ื™ืงื˜ ื”- Person ืืœ ื”ืžืกื•ืฃ.

ืกื™ื›ื•ื

ื‘ืžืืžืจ ื–ื” ืœืžื“ื ื• ืขืœ ื”ื“ืจื›ื™ื ื”ืฉื•ื ื•ืช ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ ื‘-Java. ืจืืฉื™ืช, ื‘ื“ืงื ื• ื™ืฆื™ืจืช ืื•ื‘ื™ื™ืงื˜ื™ื ื‘ืืžืฆืขื•ืช ืžื™ืœืช ื”ืžืคืชื— ื”ื—ื“ืฉื” , ืฉื”ื™ื ื”ื“ืจืš ื”ื ืคื•ืฆื” ื‘ื™ื•ืชืจ. ืœืื—ืจ ืžื›ืŸ ืœืžื“ื ื• ืืช ืฉื™ื˜ืช newInstance() ืžื”ืžื—ืœืงื•ืช Class ื•- Constructor , ืฉื”ื™ื ื“ืจืš ืคื•ืคื•ืœืจื™ืช ื ื•ืกืคืช ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ื™ื. ืœืื—ืจ ืžื›ืŸ ื”ืฉืชืžืฉื ื• ื‘ืฉื™ื˜ืช clone() , ืฉื™ื•ืฆืจืช ืขื•ืชืง ืจื“ื•ื“ ืฉืœ ื”ืื•ื‘ื™ื™ืงื˜ ื”ืงื™ื™ื ื‘ืžืงื•ื ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ ื—ื“ืฉ. ืœื‘ืกื•ืฃ, ื”ืฉืชืžืฉื ื• ื‘ืžื•ืฉื’ ืฉืœ ืกืจื™ืืœื™ื–ืฆื™ื” ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ื ื•-deserialization ื›ื“ื™ ืœื™ืฆื•ืจ ืื•ื‘ื™ื™ืงื˜ื™ื ื‘-Java.

ืžื—ืจื•ื–ืช ืœ-Int ื‘-Java - ื›ื™ืฆื“ ืœื”ืžื™ืจ ืžื—ืจื•ื–ืช ืœืžืกืคืจ ืฉืœื

ืžืงื•ืจ: FreeCodeCamp ื”ื™ื•ื ืชืœืžื“ื• ื›ื™ืฆื“ ืœื”ืžื™ืจ ืžื—ืจื•ื–ืช ืœืžืกืคืจ ืฉืœื ื‘-Java ื‘ืืžืฆืขื•ืช ืฉืชื™ ืฉื™ื˜ื•ืช ืฉืœ ื”ืžื—ืœืงื” Integer - parseInt() ื•- valueOf() . ื–ื” ื™ืขื–ื•ืจ ืœืš ื‘ืขืช ื‘ื™ืฆื•ืข ืคืขื•ืœื•ืช ืžืชืžื˜ื™ื•ืช ื‘ืืžืฆืขื•ืช ื”ืขืจืš ืฉืœ ืžืฉืชื ื” ืžื—ืจื•ื–ืช. ะšะพั„ะต-ะฑั€ะตะนะบ #174. ะ ะฐะทะปะธั‡ะฝั‹ะต ัะฟะพัะพะฑั‹ ัะพะทะดะฐะฝะธั an object ะฒ Java.String ะฒ Int ะฝะฐ Java โ€” How ะฟั€ะตะพะฑั€ะฐะทะพะฒะฐั‚ัŒ ัั‚ั€ะพะบัƒ ะฒ ั†ะตะปะพะต ั‡ะธัะปะพ - 2

ื›ื™ืฆื“ ืœื”ืžื™ืจ ืžื—ืจื•ื–ืช ืœืžืกืคืจ ืฉืœื ื‘-Java ื‘ืืžืฆืขื•ืช Integer.parseInt

ืืคืฉืจื•ืช ื–ื• ืžื ื™ื—ื” ืฉื”ืžืชื•ื“ื” parseInt() ืœื•ืงื—ืช ืžื—ืจื•ื–ืช ื›ื“ื™ ืœื”ืžื™ืจ ืœืžืกืคืจ ืฉืœื ื›ืคืจืžื˜ืจ:
Integer.parseInt(string_varaible)
ืœืคื ื™ ืฉื ืกืชื›ืœ ืขืœ ื“ื•ื’ืžื” ืœืฉื™ืžื•ืฉ ื‘ื•, ื‘ื•ืื• ื ืจืื” ืžื” ืงื•ืจื” ื›ืืฉืจ ืžื•ืกื™ืคื™ื ืขืจืš ืžื—ืจื•ื–ืช ื•ืžืกืคืจ ืฉืœื ืœืœื ื›ืœ ื”ืžืจื”:
class StrToInt {
    public static void main(String[] args) {
        String age = "10";

        System.out.println(age + 20);
        // 1020
    }
}
ื‘ืงื•ื“ ื–ื”, ื™ืฆืจื ื• ื’ื™ืœ ืžืฉืชื ื” ืขื ืขืจืš ื”ืžื—ืจื•ื–ืช "10". ื›ืืฉืจ ื”ื•ืกืคื ื• ืืช ื”ืžืกืคืจ 20 ืœืขืจืš ืžืกืคืจ ืฉืœื, ืงื™ื‘ืœื ื• ื‘ื˜ืขื•ืช 1020 ื‘ืžืงื•ื ื”ืชืฉื•ื‘ื” ื”ื ื›ื•ื ื” ืฉืœ 30. ื ื™ืชืŸ ืœืชืงืŸ ื–ืืช ื‘ืืžืฆืขื•ืช ืฉื™ื˜ืช parseInt() :
class StrToInt {
    public static void main(String[] args) {
        String age = "10";

        int age_to_int = Integer.parseInt(age);

        System.out.println(age_to_int + 20);
        // 30
    }
}
ื›ืืŸ, ื›ื“ื™ ืœื”ืžื™ืจ ืืช ืžืฉืชื ื” ื”ื’ื™ืœ ืœืžืกืคืจ ืฉืœื, ื”ืขื‘ืจื ื• ืื•ืชื• ื›ืคืจืžื˜ืจ ืœืฉื™ื˜ืช parseInt() - Integer.parseInt(age) - ื•ืื—ืกื ื• ืื•ืชื• ื‘ืžืฉืชื ื” ื‘ืฉื age_to_int . ื›ืขืช ื›ืืฉืจ ืžื•ืกื™ืคื™ื ืœืžืกืคืจ ืฉืœื ืื—ืจ ื ืงื‘ืœ ืืช ื”ืชื•ืกืคืช ื”ื ื›ื•ื ื”: age_to_int + 20 .

ื›ื™ืฆื“ ืœื”ืžื™ืจ ืžื—ืจื•ื–ืช ืœืžืกืคืจ ืฉืœื ื‘-Java ื‘ืืžืฆืขื•ืช Integer.valueOf

ื”ืฉื™ื˜ื” valueOf() ืคื•ืขืœืช ื›ืžื• ื”ืฉื™ื˜ื” parseInt() . ื–ื” ืœื•ืงื— ื›ืคืจืžื˜ืจ ืžื—ืจื•ื–ืช ืฉืฆืจื™ืš ืœื”ืžื™ืจ ืœืžืกืคืจ ืฉืœื. ื”ื ื” ื“ื•ื’ืžื”:
class StrToInt {
    public static void main(String[] args) {
        String age = "10";

        int age_to_int = Integer.valueOf(age);

        System.out.println(age_to_int + 20);
        // 30
    }
}
ื‘ืงื•ื“ ืœืขื™ืœ ืืชื” ื™ื›ื•ืœ ืœืจืื•ืช ืืช ืื•ืชื• ื”ื“ื‘ืจ ื›ืžื• ื‘ืกืขื™ืฃ ื”ืงื•ื“ื:
  • ื”ืขื‘ืจื ื• ืžื—ืจื•ื–ืช ื›ืคืจืžื˜ืจ ืœ- valueOf() : Integer.valueOf(age) . ื”ื•ื ืื•ื—ืกืŸ ื‘ืžืฉืชื ื” ื‘ืฉื age_to_int .
  • ืœืื—ืจ ืžื›ืŸ ื”ื•ืกืคื ื• 10 ืœืžืฉืชื ื” ืฉื ื•ืฆืจ: age_to_int + 20 . ื”ืชื•ืฆืื” ื”ื™ื™ืชื” 30 ื‘ืžืงื•ื 1020.

ืกื™ื›ื•ื

ื‘ืžืืžืจ ื–ื”, ื“ื ื• ื‘ื”ืžืจืช ืžื—ืจื•ื–ื•ืช ืœืžืกืคืจื™ื ืฉืœืžื™ื ื‘-Java. ื›ื“ื™ ืœื”ืžื™ืจ ืžื—ืจื•ื–ืช ืœืžืกืคืจ ืฉืœื, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืฉืชื™ ืฉื™ื˜ื•ืช ืฉืœ ื”ืžื—ืœืงื” Integer - parseInt() ื•- valueOf() . ืงื™ื“ื•ื“ ืฉืžื—!
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION