java tring 数据类型-Java关于String转换其他数据类型的问题

问题描述

Java关于String转换其他数据类型的问题
小弟有个关于String转换其他数据类型的问题想请教各位大大,新手未有悬赏币,见谅。
下面贴代码,问题在最后。

person类

 package com.local.person.bean;public class Person {    private int id;    private String name;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}

RecordItem类

 public class RecordItem {    private String key;    private String value;    public String getKey() {        return key;    }    public void setKey(String key) {        this.key = key;    }    public String getValue() {        return value;    }    public void setValue(String value) {        this.value = value;    }}

转换方法BeanParser

 package com.local.person.bean;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.List;import java.util.Locale;public class BeanParser {    public static <T> List<T> parse(List<List> records Class<T> classParam) throws InstantiationException IllegalAccessException {        List<T> list = new ArrayList<T>();        Method[] methods = classParam.getMethods();        for (int i = 0; i < records.size(); i++) {            List<RecordItem> record = records.get(i);            T bean = classParam.newInstance();            for (int j = 0; j < record.size(); j++) {                RecordItem item = record.get(j);                for (Method method : methods) {                    String methodName = method.getName();                    if (methodName.startsWith(""set"")) {                        String attr = methodName.substring(3).toLowerCase(Locale.getDefault());                        if (attr.equals(item.getKey())) {                            try {                                method.invoke(bean item.getValue());                            } catch (IllegalArgumentException e) {                                e.printStackTrace();                            } catch (IllegalAccessException e) {                                e.printStackTrace();                            } catch (InvocationTargetException e) {                                e.printStackTrace();                            }                        }                    }                }            }            list.add(bean);        }        return list;    }}

执行下面的main方法

 package com.local.person.bean;import java.util.ArrayList;import java.util.List;public class GetPersonList {    public static void main(String[] args) {        List<List> records = new ArrayList<List>();        List<RecordItem> record1 = new ArrayList<RecordItem>();        RecordItem item1 = new RecordItem();        item1.setKey(""id"");        item1.setValue(""1"");        record1.add(item1);        RecordItem item2 = new RecordItem();        item2.setKey(""name"");        item2.setValue(""jack"");        record1.add(item2);        List<RecordItem> record2 = new ArrayList<RecordItem>();        RecordItem item3 = new RecordItem();        item3.setKey(""id"");        item3.setValue(""2"");        record2.add(item3);        RecordItem item4 = new RecordItem();        item4.setKey(""name"");        item4.setValue(""tom"");        record2.add(item4);        records.add(record1);        records.add(record2);        List<Person> personList = new ArrayList<Person>();        try {            personList = BeanParser.parse(records Person.class);        } catch (InstantiationException e) {            e.printStackTrace();        } catch (IllegalAccessException e) {            e.printStackTrace();        }        for (int i = 0; i < personList.size(); i++) {            Person person = personList.get(i);            System.out.println(""id="" + person.getId() + ""name="" + person.getName());        }    }}

事情是这样子的:有两条数据
id=1name=jack
id=2name=tom
放在两个RecordItem里面,外面套了两个List,我想把这两条数据装到两个Person里面,Person再放进List里面传回给main方法,main方法打印出来。
但是存在一个问题,就是Person里面的数据类型都是基本类型或封装类(不确定是什么实体类,里面会有什么数据类型),要怎么把RecordItem的String类型根据Person数据类型存进去,让method.invoke(bean item.getValue());不报错???

时间: 2024-08-31 14:19:36

java tring 数据类型-Java关于String转换其他数据类型的问题的相关文章

解析Java中的String对象的数据类型

  解析Java中的String对象的数据类型     [摘要] 本文将全面解析Java中的String对象的数据类型.[关键字] Java 技巧   1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. new String()和new String("")都是申明一个新的空字符串,是空串不是null: 3. String str="

JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中,用户可以通过指定数据类型和标识符来声明变量,其基本语法为: DataType identifier;  或  DataType identifier = value; 其中,DataType是变量类型,如int/string/char/double/boolean等:identifier是变量名称,即标识符:value就是声明变量的值. 注: a.标识符由数字0-9.大小写字母.下划线.美元符号.人民币符号以及

java中基本类型之间的转换

问题描述 java中基本类型之间的转换,笔试中常见的考题及答案,亲们,有能力的就帮忙解答下呗!(额的基础不好呀!) 解决方案 解决方案二:主要是3种,分别如下: 1.字符串和基础数据类型的互相转换 2.基础数据类型和其相对应的包装类的互相转换 3.字符串和基础数据类型的包装类的互相转换  1. (1)字符串转换成为基础数据类型 String s = "200";  int i = Integer.parseInt("s"); 或者 int si2 = new Int

JAVA之旅(十八)——基本数据类型的对象包装类,集合框架,数据结构,Collection,ArrayList,迭代器Iterator,List的使用

JAVA之旅(十八)--基本数据类型的对象包装类,集合框架,数据结构,Collection,ArrayList,迭代器Iterator,List的使用 JAVA把完事万物都定义为对象,而我们想使用数据类型也是可以引用的 一.基本数据类型的对象包装类 左为基本数据类型,又为引用数据类型 byte Byte int Integer long Long boolean Booleab float Float double Double char Character 我们拿Integer来举例子 //整

java中数字与字符串的转换

这段时间看Java2,进展不是太理想,看的很慢,今天看到了Java库的Java.lang部分 了.今天看的遇到点问题:这个程序是关于数字与字符串的转换.但是我输入1 2 3,结 果是抛出异常,输出"Invide number".错误在哪里?程序如下: 数字与字符串的转换 import java.io.*; public class Parse { public static void main(String args[]) throws IOException { BufferedRe

蓝桥杯 java基础试题关于进制转换的

问题描述 蓝桥杯 java基础试题关于进制转换的 这道题为什么我的代码评测出现错误输入输出啊?可以帮我找找有啥潜在的问题么?谢谢了. import java.util.Scanner; public class Main { public static void from16to10(String str){ int num = 0; int j=0; for(int i=str.length()-1;i>=0;i--){ if(str.charAt(i)<'A'){ num +=((str.

一个java的DES加解密类转换成C#

原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //import java.util.regex.Pattern; //import java.util.Hashtable; import javax.crypto.*; import javax.crypto.spec.*; import sun.misc.*; /** * des加密解密 */ pu

java 时间戳和PHP时间戳 的转换 php time()

总结一下java 时间戳和PHP时间戳 的转换问题: 由于精度不同,导致长度不一致,直接转换错误. JAVA时间戳长度是13位,如:1294890876859 PHP时间戳长度是10位, 如:1294890859 主要最后三位的不同,JAVA时间戳在PHP中使用,去掉后三位,如:1294890876859-> 1294890876 结果:2011-01-13 11:54:36 echo date('Y-m-d H:i:s','1294890876'); PHP时间戳在JAVA中使用,最后加三位,

java数据类型-java中只要是基本数据类型的变量初始值问题

问题描述 java中只要是基本数据类型的变量初始值问题 java中只要是基本数据类型的变量 int a;和int a =0是一样的 只要是引用数据类型变量 String a = null; String a; 是一样的 以上说法正确吗 解决方案 基本数据类型对.引用的值不初始化是没有默认值的,引用的数据类型变量不初始化是不能用的.必须初始化了别的地方才能用.因为没有引用的内存地址. 解决方案二: 你分别打印String a = null; String a; 看看. 解决方案三: java中基本