【问题标题】:How to get values from an object have 2 datatype values?如何从具有 2 个数据类型值的对象中获取值?
【发布时间】:2015-06-08 07:00:23
【问题描述】:

我有一个列表List<Object> list = new ArrayList<Object>();

如果我迭代它,我会得到对象列表我在调试时得到每个对象都是这样的

for(Object obj:objects){
   System.out.println(obj);
}

我越来越喜欢

[0] = Integer -> Value is 2
[1] = Long -> Value is 3

[0] = Integer -> Value is 1
[1] = Long -> Value is 2

[0] = Integer -> Value is 1
[1] = Long -> Value is 4

List<Object> objects = service.getRankings();

如果我迭代对象

for(Object obj:objects){
  sysout(obj);
}

当我调试代码时,我会将列表中每个对象的具有 2 个数据类型值的对象作为

[0] = Integer -> Value is 2
[1] = Long -> Value is 3

我想要对象中的值并设置在另一个对象中,谁能帮我从对象中获取值?

【问题讨论】:

  • 你想得到什么?你的担忧不清楚。请解释,并纠正你的最后一行问题
  • List list = new ArrayList();使用对象 arrayList 是灾难的秘诀;我建议您为列表提供特定的数据类型或类类型。也很难弄清楚你真正想要什么,请详细说明你的代码。

标签: java object iterator


【解决方案1】:

公共类测试1 {

public static void main(String[] args) {

    Integer i = new Integer(10);
    Float f = new Float(10.4f);
    Double d = new Double(10.6);

    Object[] objects = { i, f, d };

    for (Object obj : objects) {

        if (obj instanceof Integer) {
            Integer integer = (Integer) obj;
            System.out.println(integer.toString());
        } else if (obj instanceof Float) {
            Float flt = (Float) obj;
            System.out.println(flt.toString());
        }
        if (obj  instanceof  Double) {
            Double dble = (Double) obj;
            System.out.println(dble.toString());
        }

    }

}

}

【讨论】:

  • 我正在使用普通查询从数据库中获取对象值,例如从 tbl_name 中选择 id、计数、排名,以便获取对象列表。所以我需要迭代并从对象中获取值。
  • 下面的例子不适合我
  • 要么解释得更好,要么发布真实代码。我的答案与您的代码相符。
  • 请使用obj instanceof Class,而不是比较类名。这不是 JavaScript ;-)。
【解决方案2】:

如果您想要数据库中的值,我建议使用以下代码:-

首先创建一个 Pojo 类,其中包含与数据库现有列相关的变量。

例如:- Employee 表有 Employee name 和 Employee ID

所以创建一个空的 java 类 Employee :-

public class Employee {      
   int employee_id;
   String emp_name;
   //setters
   //getters
}

现在在您的 DBManager 函数 getEmployee() 中:-

   public class DBManager {
     //Define Database connection


     public static ArrayList<Employee> getEmployee()
     {
       ArrayList<Employee> list=new Arraylist<Employee>();
       Employee obj=new Employee();
       Prepared statment= con.createPreparedStatment("select * from employee");
       Resultset rs= statment.execute(); // call that execute method which return a resultset
       while(rs.next()) {
          obj.setEmployeeId(rs.getInteger());
          obj.setEmployeeName(rs.getString());
          list.add(obj);
     }
      return list;
    }

在您的 java 类中获取数据如下:-

 public class EmployeeExecute {
 public static void main(String args[])
  ArrayList<Employee> ans= DBManager.getEmployee();
   //iterate ans
  }

我已经给出了员工数据的例子。您可以为您的数据做同样的事情。

PS:- 我刚刚输入了一个示例,所以某些方法名称可能是错误的。

【讨论】:

  • 我读了 cmets。知道 manoj 想从数据库中获取值。所以改变了答案
猜你喜欢
  • 1970-01-01
  • 2021-11-12
  • 2020-05-08
  • 2021-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-15
相关资源
最近更新 更多