java对象类型转换分为_java-如何将类对象转换为通用对象类型?

我正在研究一种使用NamedParameterJdbcTemplate从MySQL数据库获取一些数据的方法. listCurrentRecords应该从数据库返回Customer,Product和SalesOrder的对象类型列表. objectType是从在方法(1 || 2 || 3)内传递的参数定义的,并且在类中更早地定义为public变量.

public static final int TYPE_PRODUCT = 1;

public static final int TYPE_CUSTOMER = 2;

public static final int TYPE_SALESORDER = 3;

下面提供了该方法.

public static List listCurrentRecords(int objectType)

{

// PRODUCT

if ( objectType == 1 ){

}

//CUSTOMER

else if ( objectType == 2 ){

}

// SALESORDER

else if ( objectType == 3 ){

}

return null;

// return new ArrayList();

}

假设objectType == 2,那么它将需要使用getMyCustomer方法(从Product和SalesOrder同样使用它们将使用各自的方法)从Customer表中获取一些数据,如下所示,

public static List getMyCustomer(){

return jdbc.query("select * from Customer", new RowMapper() {

public Customer mapRow(ResultSet rs, int rowNum) throws SQLException {

Customer customer = new Customer();

customer.setCustomerID(rs.getString("CustomerID"));

customer.setName( rs.getString("Name"));

customer.setAddress( rs.getNString("Address"));

customer.setPhone1(rs.getNString("Phone 1"));

customer.setPhone2(rs.getNString("Phone 2"));

customer.setCreditLimit(rs.getDouble("Credit Limit"));

customer.setCurrentCredit(rs.getDouble("Current Credit"));

return customer;

}

});

在else if(objectType == 2){}内部,我想调用getMyCustomer方法并获取List< Customer>.那里.但是,方法listCurrentRecords的返回类型为List< Object>.如何从List< Customer>转换列出< Object>.我提供了以下伪代码,

// customer

else if ( objectType == 2 ){

List myCustomer = getMyCustomer();

// how to convert ***myCustomer*** to List ?

}

感谢您提供一些有关如何用Java正确编写的帮助.

解决方法:

由于需要对象类型(记住泛型是编译时类型检查功能),因此可以使用addAll或采用第二个List的构造函数.喜欢

List myCustomer = new ArrayList<>(getMyCustomer());

要么

List al = new ArrayList<>();

// ...

al.addAll(getMyCustomer());

标签:generics,jdbc,java,mysql,object

来源: https://codeday.me/bug/20191027/1946580.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312275.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BeetleX网关之请求聚合

在网关服务中请求聚合是允许把多个请求打包成一个响应给请求方&#xff0c;这样不仅可以节省请求方的请求数量&#xff0c;还可以根据需求的情况整合不同业务数据响应请求。BeetleX.Bumblebee虽然并没有内置这一功能&#xff0c;但可以通过扩展的形式来支持请求聚合&#xff0c…

C++vector容器-赋值操作

vector赋值操作 功能描述&#xff1a; 给vector容器进行赋值 函数原型&#xff1a; 代码如下&#xff1a; #include <iostream> using namespace std; #include <vector> //vector赋值操作void printVector(vector<int> &v) {for (vector<int >…

java 计算i 出现的次数_JAVA算法:按照给定的段落统计单词出现次数(JAVA代码)...

https://blog.csdn.net/seagal890/article/details/92067644JAVA算法&#xff1a;按照给定的段落统计单词出现次数(JAVA代码)写一个 JAVA程序以统计一个文本文件 words.txt 中每个单词出现的频率。为了简单起见&#xff0c;你可以假设&#xff1a;words.txt只包括小写字母和 …

EntityFramework Core表名原理解析,让我来,揭开你神秘的面纱

上一节我们针对最开始抛出的异常只是进行了浅尝辄止的解析&#xff0c;是不是有点意犹未尽的感觉&#xff0c;是的&#xff0c;我也有这种感觉&#xff0c;看到这里相信您和我会有一些疑惑&#xff0c;要是我们接下来通过注解、Fluent APi、DbSet分别对表名进行如下设置&#x…

C++vector容器-容量和大小

vector容量和大小 功能描述&#xff1a; 对vector容器的容量和大小操作 函数原型&#xff1a; 代码如下&#xff1a; #include <iostream> using namespace std; #include <vector> //vector容器的容量和大小操作void printVector(vector<int > &v) {…

openresty+mysql+乱码_openresty记录响应body乱码问题

问题背景最近新上了一个功能&#xff0c;openresty通过syslog记录请求日志&#xff0c;然后由logstash推送至ES。测试上线时未发现这个问题&#xff0c;在日常查看日志的过程中&#xff0c;发现logstash推送有错误日志&#xff0c;错误内容为&#xff1a;Error parsing json&am…

【Azure学习.01】先从账号注册开始

本文部分内容配套视频&#xff1a;https://www.bilibili.com/video/av82898957马上要放假了&#xff0c;决定在家里简单了解一下Azure云服务&#xff0c;虽然公司其他部分用到了这个Azure&#xff0c;但是我还是没有接触到&#xff0c;只是听说很贵&#xff0c;好几千每天&…

C++vector容器-插入和删除

vector插入和删除 功能描述&#xff1a; 对vector容器进行插入&#xff0c;删除操作 函数原型&#xff1a; 代码如下&#xff1a; #include <iostream> using namespace std; #include <vector> //vector插入和删除void printVector(vector<int > &v…

python hasattr函数_python学习-type(),isinstance(),dir(),getattr(),setattr(),hasattr()

isinstance() 与 type() 区别&#xff1a;type() 不会认为子类是一种父类类型&#xff0c;不考虑继承关系。isinstance() 会认为子类是一种父类类型&#xff0c;考虑继承关系。如果要判断两个类型是否相同推荐使用 isinstance()。使用type()首先&#xff0c;我们来判断对象类型…

C++vector容器-数据存取

vector数据存取 功能描述&#xff1a; 对vector中的数据的存取操作 函数原型&#xff1a; 代码如下&#xff1a; #include <iostream> using namespace std; #include <vector>//vector容器 数据存取 void test01() {vector<int >v1;for (int i 0; i &l…

如何快速融入团队(四)

作者&#xff1a;邹溪源&#xff0c;长沙资深互联网从业者&#xff0c;架构师社区特邀嘉宾&#xff01;01不知不觉这个系列已经开始第四篇的&#xff0c;其实我的原始意图只是思考一下如果有幸加入一个新团队&#xff0c;我们在思想和行动上该做哪些准备呢。不过随着内容的逐渐…

C++vector容器-互换容器

vector容器互换 功能描述&#xff1a; 实现两个容器内元素进行互换 函数原型&#xff1a; swap(vec);//将vec与本身的元素互换 1.基本使用 代码如下: #include <iostream> using namespace std; //vector容器互换 #include <vector> //1.基本使用void printVect…

java计算字符串中字符出现的次数_java – 计算字符串中字符出现次数

参见英文答案 > Java compressing Strings 18个我正在尝试编写一个Java程序,它接受一个字符串作为输入,并计算一个字符串中出现的字符数,然后打印一个新字符串,该字符串后跟no出现的字符.例如.输入字符串&#xff1a;aaaabb输出字符串&a…

.NET 状态机Automatonymous快速入门

介绍 Automatonymous是.NET开发人员的状态机库。它提供了一种流畅的语法来声明状态机&#xff0c;包括状态&#xff0c;事件&#xff08;支持触发器和数据事件&#xff09;以及状态/事件活动。尽管Automatonymous在简单的状态机上非常容易使用&#xff0c;但它具有许多高级功能…

C++vector容器-预留空间

vector预留空间 功能描述&#xff1a; 减少vector在多态扩展容量时的扩展次数 函数原型&#xff1a; reserve(int len);//容器预留len个元素长度&#xff0c;预留位置不初始化&#xff0c;元素不可访问。 当我们往vector容器中push_back大量的数&#xff0c;vector就会开辟多…

BeetleX实现HTTP协议详解

在传统网络服务中扩展中需要处理Bytes来进行协议的读写&#xff0c;这种原始的处理方式让工作变得相当繁琐复杂&#xff0c;出错和调试的工作量都非常大&#xff1b;组件为了解决这一问题引用Stream读写方式&#xff0c;这种方式可以极大的简化网络协议读写的工作量&#xff0c…

erlang rebar 配置mysql_Erlang Rebar 使用指南之四:依赖管理

Erlang Rebar 使用指南之四&#xff1a;依赖管理全文目录&#xff1a;本章链接&#xff1a;1 rebar依赖定义Rebar取得和构建符合OTP/Rebar规范的项目。如果项目包含子项目&#xff0c;Rebar会自动递归地构建它们。项目的依赖在project_dir/rebar.config中定义&#xff0c;形式如…

euclidea4攻略_Euclidea几何构建11.4通关攻略

Euclidea几何构建10.2通关攻略Euclidea游戏10.2怎么过&#xff1f;下面小编为大家带来Euclidea几何构建10.2通关攻略&#xff1a;更多攻略不断更新中——Euclidea游戏全关卡通关攻略大全分两次做图第一次&#xff0c;画圆就成了&#xff0c;具体看图应该能懂。第二次&#xff0…

C++set容器-构造和赋值

set基本概念 简介&#xff1a; 所有元素都会自动在插入时自动被排序&#xff0c;set容器也叫集合容器 本质&#xff1a; set/multiset属于关联式容器&#xff0c;底层结构是用二叉树排序 set和multiset区别&#xff1a; 1.set不允许容器中有重复的元素 2.multiset允许容器中有…

(1)解锁MongoDB replica set核心姿势

本文倒腾目前大热的MongoDB Replica Set集群&#xff0c;在倒腾的同时串讲一些 MongoDB特性。 副本集Replica Set是一个术语&#xff0c;定义具有多节点的数据库集群&#xff0c;这些节点具有主从复制(master-slave replication) 且节点之间实现了自动故障转移。 这样的结构通常…