Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何以数组的形式获取响应_Java - Fatal编程技术网

Java 如何以数组的形式获取响应

Java 如何以数组的形式获取响应,java,Java,代码 package-com; 公营雇员{ 私有字符串名称; 私有字符串empId; 公共雇员(字符串名称、字符串empId){ 超级(); this.name=名称; this.empId=empId; } //equals和hashcode } 包装组件; 导入java.util.LinkedHashSet; 导入java.util.Set; 公共类测试人员{ 公共静态void main(字符串[]args){ 员工emp1=新员工(“卢克”,“11”); 员工emp2=新员工(“Luke2

代码

package-com;
公营雇员{
私有字符串名称;
私有字符串empId;
公共雇员(字符串名称、字符串empId){
超级();
this.name=名称;
this.empId=empId;
}
//equals和hashcode
}
包装组件;
导入java.util.LinkedHashSet;
导入java.util.Set;
公共类测试人员{
公共静态void main(字符串[]args){
员工emp1=新员工(“卢克”,“11”);
员工emp2=新员工(“Luke2”,“12”);
Set empSet=new LinkedHashSet();
empSet.add(emp1);
empSet.add(emp2);
对象obj[]=empSet.toArray();
系统输出打印项次(obj);
}
}
打印时,我得到的响应显示为
[Ljava.lang.Object;@7852e922

我需要一个雇员数组形式的响应,你能帮助我如何以数组的形式得到这个响应吗


响应需要形成一个Employee数组

您需要在
Employee
类中实现一个
toString
方法

package com;

public class Employee {

    private String name;

    private String empId;

    public Employee(String name, String empId) {
        super();
        this.name = name;
        this.empId = empId;
    }

    // equals and hashcode

}


package com;

import java.util.LinkedHashSet;
import java.util.Set;

public class TestEmp {

    public static void main(String[] args) {
        Employee emp1 = new Employee("Luke", "11");
        Employee emp2 = new Employee("Luke2", "12");

        Set<Employee> empSet = new LinkedHashSet<>();

        empSet.add(emp1);
        empSet.add(emp2);

        Object obj[] = empSet.toArray();

        System.out.println(obj);
    }

}
主要


您需要在
Employee
类中实现
toString
方法

package com;

public class Employee {

    private String name;

    private String empId;

    public Employee(String name, String empId) {
        super();
        this.name = name;
        this.empId = empId;
    }

    // equals and hashcode

}


package com;

import java.util.LinkedHashSet;
import java.util.Set;

public class TestEmp {

    public static void main(String[] args) {
        Employee emp1 = new Employee("Luke", "11");
        Employee emp2 = new Employee("Luke2", "12");

        Set<Employee> empSet = new LinkedHashSet<>();

        empSet.add(emp1);
        empSet.add(emp2);

        Object obj[] = empSet.toArray();

        System.out.println(obj);
    }

}
主要


重写Employee类中的toString方法:

[Employee{name='Luke', empId='11'}, Employee{name='Luke2', empId='12'}]
使用Arrays.toString在TestEmp类中打印:

@Override
    public String toString() {
        return "Employee{" +
                "name='" + name + '\'' +
                ", empId='" + empId + '\'' +
                '}';
    }

重写Employee类中的toString方法:

[Employee{name='Luke', empId='11'}, Employee{name='Luke2', empId='12'}]
使用Arrays.toString在TestEmp类中打印:

@Override
    public String toString() {
        return "Employee{" +
                "name='" + name + '\'' +
                ", empId='" + empId + '\'' +
                '}';
    }

java.lang.Object;@7852e922
Object obj[]=empSet.toArray()的对象地址

我向您介绍了如何使用反射从对象类获取值,然后将其存储到二维数组中

我的想法不需要覆盖toString()方法,而是将值真正存储到数组中

我想这就是你想要的


导入java.lang.reflect.Field;
导入java.util.array;
导入java.util.LinkedHashSet;
导入java.util.Set;
公共类测试人员{
公共静态void main(字符串[]args)引发IllegalAccessException{
//TODO自动生成的方法存根
员工emp1=新员工(“卢克”,“11”);
员工emp2=新员工(“Luke2”,“12”);
Set empSet=new LinkedHashSet();
empSet.add(emp1);
empSet.add(emp2);
对象obj[]=empSet.toArray();
字段[]fs=Employee.class.getDeclaredFields();
字符串[][]empArray=新字符串[obj.length][fs.length];

for(int i=0;i
java.lang.Object;@7852e922
Object obj[]=empSet.toArray()的对象地址

我向您介绍了如何使用反射从对象类获取值,然后将其存储到二维数组中

我的想法不需要覆盖toString()方法,而是将值真正存储到数组中

我想这就是你想要的


导入java.lang.reflect.Field;
导入java.util.array;
导入java.util.LinkedHashSet;
导入java.util.Set;
公共类测试人员{
公共静态void main(字符串[]args)引发IllegalAccessException{
//TODO自动生成的方法存根
员工emp1=新员工(“卢克”,“11”);
员工emp2=新员工(“Luke2”,“12”);
Set empSet=new LinkedHashSet();
empSet.add(emp1);
empSet.add(emp2);
对象obj[]=empSet.toArray();
字段[]fs=Employee.class.getDeclaredFields();
字符串[][]empArray=新字符串[obj.length][fs.length];

对于(int i=0;i'Employee[]employees=new employees[1];employees=empSet.toArray(employees);“employees[]employees=new employees[1];employees=empSet.toArray(employees);”也许您应该对
toString()使用
String.format();
方法功能更强大,可读性更好。在这种情况下,它应该是:
返回String.format(“Employee{name='%s',empId='%s'}”,name,empId);
这不是必需的,但更容易理解发生了什么,因为您可以立即看到输出字符串的格式,并且可以轻松地调整变量。此外,您还可以添加格式设置,如
%10s
,以便此字符串无论有多少个字符都需要10个字符的空间。也许您应该使用
字符串。format()
对于
toString()
方法,它的功能更强大,可读性更好。在这种情况下,它应该是:
返回String.format(“Employee{name='%s',empId='%s'),name,empId);
这不是必需的,但更容易理解发生了什么,因为您可以立即看到输出字符串的格式,并且可以轻松地调整变量。此外,您还可以添加格式设置,如
%10s
,以便此字符串无论有多少个字符,始终占用10个字符的空间
Luke 11
Luke2 12