Vector抛出异常与Object转换为Double后进行大小比较
2016-07-26 20:49
585 查看
public boolean onBoSaveBeforeCheck() {
boolean flag = false;
Object pk_invbasdoc = null;
Object douNumber;
try {
BillModel billModel = getBillCardPanelWrapper().getBillCardPanel().getBillModel("jzpm_mt_settle_b1");
Vector rowData = billModel.getDataVector();//这里拿到一个vector,vector的每个分量中都是装载着是类似于数组的对象
List pk_contract = (List) rowData.get(0);//这里要是转型为Object[]或是ArrayList[]都抛出了异常
IUAPQueryBS dao = NCLocator.getInstance().lookup(IUAPQueryBS.class);
List result = (List) dao.executeQuery(new StringBuffer("'").append(pk_contract.get(2)).append("'").toString(), new MapListProcessor());
for(int j = 0;j<rowData.size();j++){
List data = (List) rowData.get(j);
List previousData = null;
for(int i = 0;i<data.size();i++){
if(j != 0){
previousData = (List) rowData.get(j-1);
}else if(j==0){
previousData = (List) rowData.get(0);
}
if("小计".equals(data.get(0)) && previousData.get(7) == data.get(3)){
pk_invbasdoc = previousData.get(12);
douNumber = previousData.get(29);//从vector中拿到
double sum =Double.parseDouble(douNumber.toString());
BigDecimal data1 = new BigDecimal(sum);
if(result!=null && result.size()>0){
for(int h=0;h<result.size();h++){
Map map = (Map) result.get(h);
if(map.get("pk_invbasdoc").equals(pk_invbasdoc)){
Object frist = map.get("vrserve3");//这里拿到Object类型的变量一个
double money =Double.parseDouble(frist.toString());//转换成double类型
BigDecimal data2 = new BigDecimal(money);
flag = data1.compareTo(data2) < 1;
}
}
}
}
}
}
} catch (Exception e) {
// TODO: handle exception
}
return flag;
}
BigDecimal a;
int c = a.compareTo(BigDecimal b)
compareTo()说明:当 a > b 时 返回 1
当 a< b 时 返回 -1
当 a=b 时返回 0
将比较两个double类型的变量的大小时使用 BigDecimal
Vector相当于是一个线程安全的List,并且是长度可变,取值时使用get(Index)方法,该方法本身会抛出异常
如果在Vector分量中存储的也是类似于数组的东西,并且不知道数据类型的情况可用强转为 List 使用。
在强转vector中取到的值时,我遇到过抛出异常的。抛出异常的时候是强转为Object[]类型
Object a;
double b = Double.parseDouble(a.toString());
Object转换为double类型
boolean flag = false;
Object pk_invbasdoc = null;
Object douNumber;
try {
BillModel billModel = getBillCardPanelWrapper().getBillCardPanel().getBillModel("jzpm_mt_settle_b1");
Vector rowData = billModel.getDataVector();//这里拿到一个vector,vector的每个分量中都是装载着是类似于数组的对象
List pk_contract = (List) rowData.get(0);//这里要是转型为Object[]或是ArrayList[]都抛出了异常
IUAPQueryBS dao = NCLocator.getInstance().lookup(IUAPQueryBS.class);
List result = (List) dao.executeQuery(new StringBuffer("'").append(pk_contract.get(2)).append("'").toString(), new MapListProcessor());
for(int j = 0;j<rowData.size();j++){
List data = (List) rowData.get(j);
List previousData = null;
for(int i = 0;i<data.size();i++){
if(j != 0){
previousData = (List) rowData.get(j-1);
}else if(j==0){
previousData = (List) rowData.get(0);
}
if("小计".equals(data.get(0)) && previousData.get(7) == data.get(3)){
pk_invbasdoc = previousData.get(12);
douNumber = previousData.get(29);//从vector中拿到
double sum =Double.parseDouble(douNumber.toString());
BigDecimal data1 = new BigDecimal(sum);
if(result!=null && result.size()>0){
for(int h=0;h<result.size();h++){
Map map = (Map) result.get(h);
if(map.get("pk_invbasdoc").equals(pk_invbasdoc)){
Object frist = map.get("vrserve3");//这里拿到Object类型的变量一个
double money =Double.parseDouble(frist.toString());//转换成double类型
BigDecimal data2 = new BigDecimal(money);
flag = data1.compareTo(data2) < 1;
}
}
}
}
}
}
} catch (Exception e) {
// TODO: handle exception
}
return flag;
}
BigDecimal a;
int c = a.compareTo(BigDecimal b)
compareTo()说明:当 a > b 时 返回 1
当 a< b 时 返回 -1
当 a=b 时返回 0
将比较两个double类型的变量的大小时使用 BigDecimal
Vector相当于是一个线程安全的List,并且是长度可变,取值时使用get(Index)方法,该方法本身会抛出异常
IndexOutOfBoundsException
如果在Vector分量中存储的也是类似于数组的东西,并且不知道数据类型的情况可用强转为 List 使用。
在强转vector中取到的值时,我遇到过抛出异常的。抛出异常的时候是强转为Object[]类型
Object a;
double b = Double.parseDouble(a.toString());
Object转换为double类型
相关文章推荐
- Object类,接口类与抽象类
- 解决 object references an unsaved transient instance - save the transient instance before flushing
- ObjectAnimator之android:propertyName
- object类中相关方法
- TypeError:'dict' object is not callable
- Objective C转Swift注意事项(二)值类型和协议
- Object中的finalize方法的使用
- PyGobject(二十二)布局容器之Frame
- PyGobject(二十一)布局容器之AppChooserButton
- PyGobject(二十)布局容器之ComboBox
- 解决问题: ----- The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from
- Object流
- POJ 3241 Object Clustering 曼哈顿最小生成树
- PyGobject(十九)布局容器之Alignment
- javaclass 与javaobject的区别
- Objective-C中的作用域详解
- Runtime系列(一)-- 基础知识
- PyGobject(十八)布局容器之ActionBar
- PyGobject(十七)布局容器之Button篇——Gtk.ModelButton
- [转]深入学习Objective-C(一):揭开NSObject的面纱