Computer >> Máy Tính >  >> Lập trình >> Java

Có thể ghi đè phương thức toString trong một mảng bằng Java không?

Bạn có thể ghi đè toString () phương thức của lớp Object nhưng, nếu bạn đang tạo một mảng đối tượng của một lớp cụ thể và muốn in nội dung của mảng này bằng cách ghi đè phương thức toString () thay vì phương thức, bạn không thể làm điều đó vì không có giải pháp nào cho điều đó trong Java kể từ bây giờ.

Nhưng bạn có thể đạt được điều này bằng nhiều phương pháp khác -

Sử dụng phương thức toString () của lớp Mảng

toString () phương thức của lớp Arrays chấp nhận một mảng String (trên thực tế là bất kỳ mảng nào) và trả về nó dưới dạng một Chuỗi. Truyền mảng Chuỗi của bạn cho phương thức này dưới dạng một tham số. Bạn có thể chỉ cần chuyển mảng đối tượng của mình sang phương thức này.

Ví dụ

import java.util.Arrays;
class Student {
   String name = "Krishna";
   int age = 20;
   Student(String name, int age) {
      this.name = name;
      this.age = age;
   }
   public String toString() {
      return "Name: "+this.name+" "+"Age: "+this.age;
   }
}
public class Example {
   public static void main(String args[]) {
      Student std1 = new Student("Krishna", 20);
      Student std2 = new Student("Radha", 25);
      Student std3 = new Student("Trupthi", 30);
      Student std4 = new Student("David", 35);
      Student std5 = new Student("Moksha", 40);
      Student students[] = {std1, std2, std3, std4, std5};
      System.out.println(Arrays.toString(students));
   }
}

Đầu ra

[Name: Krishna Age: 20, Name: Radha Age: 25, Name: Trupthi Age: 30, Name: David Age: 35, Name: Moksha Age: 40]

Sử dụng phương thức asList () của lớp Mảng

Phương thức này chấp nhận một mảng làm đối số và trả về một đối tượng Danh sách. Sử dụng phương pháp này để chuyển đổi một mảng thành Đặt.

Ví dụ

import java.util.Arrays;
class Student {
   String name = "Krishna";
   int age = 20;
   Student(String name, int age) {
      this.name = name;
      this.age = age;
   }
   public String toString() {
      return "Name: "+this.name+" "+"Age: "+this.age;
   }
}
public class Example {
   public static void main(String args[]) {
      Student std1 = new Student("Krishna", 20);
      Student std2 = new Student("Radha", 25);
      Student std3 = new Student("Trupthi", 30);
      Student std4 = new Student("David", 35);
      Student std5 = new Student("Moksha", 40);
      Student students[] = {std1, std2, std3, std4, std5};
      System.out.println(Arrays.asList(students));
   }
}

Đầu ra

[Name: Krishna Age: 20, Name: Radha Age: 25, Name: Trupthi Age: 30, Name: David Age: 35, Name: Moksha Age: 40]

Sử dụng lớp ArrayList

Điều này hơi khác một chút nhưng là giải pháp -

  • Tạo một lớp mở rộng lớp ArrayList.

  • Thêm các đối tượng vào lớp này.

  • Sử dụng toString () phương thức của lớp ArrayList để in nội dung.

Ví dụ

import java.util.ArrayList;
import java.util.Arrays;
class Student {
   String name = "Krishna";
   int age = 20;
   Student(String name, int age) {
      this.name = name;
      this.age = age;
   }
   public String toString() {
      return "Name: "+this.name+" "+"Age: "+this.age;
   }
}
public class Example extends ArrayList<Object> {
   public static void main(String args[]) {
      Example obj = new Example();
      obj.add(new Student("Krishna", 20));
      obj.add(new Student("Radha", 25));
      obj.add(new Student("Trupthi", 30));
      obj.add(new Student("David", 35));
      obj.add(new Student("Moksha", 40));
      System.out.println(obj.toString());
   }
}

Đầu ra

[Name: Krishna Age: 20, Name: Radha Age: 25, Name: Trupthi Age: 30, Name: David Age: 35, Name: Moksha Age: 40]