枚举错误,高分求解释,错误原因。

lee1473336489 2013-05-08 03:45:25
	G4C_1_B(Arrays.asList(SqlId.g4c_1_b_deleteTodayData,
SqlId.g4c_1_b_total_deleteTodayData), Arrays.asList(
SqlId.g4c_1_b_insert, SqlId.g4c_1_b_total_insert), Arrays.asList(
EvaluateResult2G4c_1_b.class, EvaluateResult2G4c_1_b_total.class)),

G4C_1_F(Arrays.asList(SqlId.g4c_1_f_deleteTodayData), Arrays
.asList(SqlId.g4c_1_f_insert), Arrays
.asList( EvaluateResult2G4c_1_f.class)),//这个是错的


G4C_1_C(Arrays.asList(SqlId.g4c_1_c_deleteTodayData,
SqlId.g4c_1_c_total_deleteTodayData), Arrays.asList(
SqlId.g4c_1_c_insert, SqlId.g4c_1_c_total_insert), Arrays.asList(
EvaluateResult2G4c_1_c.class, EvaluateResult2G4c_1_c_total.class));

private List<SqlId> deleteId;
private List<SqlId> insertId;

private List<Class<? extends IEvaluateResultMapping>> mappings;

private EvaluateResultSqlId(List<SqlId> deleteId, List<SqlId> insertId,
List<Class<? extends IEvaluateResultMapping>> mappings) {
this.deleteId = deleteId;
this.insertId = insertId;
this.mappings = mappings;

}

error:The constructor EvaluateResultSqlId(List<SqlId>,List<SqlId>,List<Class<EvaluateResult2G4c_1_f>>) is undefined
...全文
147 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lee1473336489 2013-05-09
  • 打赏
  • 举报
回复
[quote=引用 3 楼 lvzg_005 的回复:] quote] 大神啊,膜拜,讲得很透彻。。。确实是和class的泛行有关。我已经把代码改成如下了
G4C_1_B(Arrays.asList(SqlId.g4c_1_b_deleteTodayData,
			SqlId.g4c_1_b_total_deleteTodayData), Arrays.asList(
			SqlId.g4c_1_b_insert, SqlId.g4c_1_b_total_insert), Arrays.asList(
			new EvaluateResult2G4c_1_b(), new EvaluateResult2G4c_1_b_total())),

	G4C_1_F(Arrays.asList(SqlId.g4c_1_f_deleteTodayData), Arrays
			.asList(SqlId.g4c_1_f_insert), Arrays
			.asList(new EvaluateResult2G4c_1_f())),

	G4C_1_C(Arrays.asList(SqlId.g4c_1_c_deleteTodayData,
			SqlId.g4c_1_c_total_deleteTodayData), Arrays.asList(
			SqlId.g4c_1_c_insert, SqlId.g4c_1_c_total_insert), Arrays.asList(
			new EvaluateResult2G4c_1_c(), new EvaluateResult2G4c_1_c_total()));
lvzg_005 2013-05-08
  • 打赏
  • 举报
回复
我觉得这个问题和枚举没关系。 问题的关键在于Arrays.asList方法 比如List<Class<? extends Collection>> lst = Arrays.asList() List<Class<? extends Collection>> lst =Arrays.asList(List.class) 如果只有一个参数List类型,编译就会报错:The constructor EvaluateResultSqlId(List<String>, List<String>, List<Class<? extends List>>) is undefined 如果在添加一个参数Set类型,结果编译正常。 List<Class<? extends Collection>> lst =Arrays.asList(List.class,Set.class) 多举几个例子就会发现,asList方法中的参数总是会转换成最接近这个class的类型, 也就是说,只有一个参数List时,会提示 The constructor EvaluateResultSqlId(List<String>, List<String>, List<Class<List>>) is undefined 这句话可以看出返回的结果必须是List<Class<List>>,而不能是List<Class<? extends Collection>> 但是如果在添加一个set类型,两者的类型可以转化成Collection>> ,所以没有报错 但是如果添加一个LinkedList类型,照样报错,原因是这两个类型的最大共同类型为List 错误提示:The constructor EvaluateResultSqlId(List<String>, List<String>, List<Class<? extends List>>) is undefined 我们可以总结:里面的对象会自动向上转型,但是转化的原则是两者的最大类型,有点像最大公约数 难道和class的泛型有关系??
lee1473336489 2013-05-08
  • 打赏
  • 举报
回复
引用 1 楼 xiyuan1999 的回复:
[quote=引用 楼主 lee1473336489 的回复:]
	G4C_1_B(Arrays.asList(SqlId.g4c_1_b_deleteTodayData,
			SqlId.g4c_1_b_total_deleteTodayData), Arrays.asList(
			SqlId.g4c_1_b_insert, SqlId.g4c_1_b_total_insert), Arrays.asList(
			EvaluateResult2G4c_1_b.class, EvaluateResult2G4c_1_b_total.class)),

	G4C_1_F(Arrays.asList(SqlId.g4c_1_f_deleteTodayData), Arrays
			.asList(SqlId.g4c_1_f_insert), Arrays
			.asList( EvaluateResult2G4c_1_f.class)),//这个是错的


	G4C_1_C(Arrays.asList(SqlId.g4c_1_c_deleteTodayData,
			SqlId.g4c_1_c_total_deleteTodayData), Arrays.asList(
			SqlId.g4c_1_c_insert, SqlId.g4c_1_c_total_insert), Arrays.asList(
			EvaluateResult2G4c_1_c.class, EvaluateResult2G4c_1_c_total.class));

	private List<SqlId> deleteId;
	private List<SqlId> insertId;

	private List<Class<? extends IEvaluateResultMapping>> mappings;

	private EvaluateResultSqlId(List<SqlId> deleteId, List<SqlId> insertId,
			List<Class<? extends IEvaluateResultMapping>> mappings) {
		this.deleteId = deleteId;
		this.insertId = insertId;
		this.mappings = mappings;

	}
error:The constructor EvaluateResultSqlId(List<SqlId>,List<SqlId>,List<Class<EvaluateResult2G4c_1_f>>) is undefined
建议LZ先了解下JAVA的构造函数的用法。[/quote] G4C_1_F(Arrays.asList(SqlId.g4c_1_f_deleteTodayData), Arrays .asList(SqlId.g4c_1_f_insert), Arrays .asList(EvaluateResult2G4c_1_f.class,EvaluateResult2G4c_1_c_total.class)) 把这个换成这样就不报错了。构造函数我懂,你能直接说错误的原因?
xiyuan1999 2013-05-08
  • 打赏
  • 举报
回复
引用 楼主 lee1473336489 的回复:
	G4C_1_B(Arrays.asList(SqlId.g4c_1_b_deleteTodayData,
			SqlId.g4c_1_b_total_deleteTodayData), Arrays.asList(
			SqlId.g4c_1_b_insert, SqlId.g4c_1_b_total_insert), Arrays.asList(
			EvaluateResult2G4c_1_b.class, EvaluateResult2G4c_1_b_total.class)),

	G4C_1_F(Arrays.asList(SqlId.g4c_1_f_deleteTodayData), Arrays
			.asList(SqlId.g4c_1_f_insert), Arrays
			.asList( EvaluateResult2G4c_1_f.class)),//这个是错的


	G4C_1_C(Arrays.asList(SqlId.g4c_1_c_deleteTodayData,
			SqlId.g4c_1_c_total_deleteTodayData), Arrays.asList(
			SqlId.g4c_1_c_insert, SqlId.g4c_1_c_total_insert), Arrays.asList(
			EvaluateResult2G4c_1_c.class, EvaluateResult2G4c_1_c_total.class));

	private List<SqlId> deleteId;
	private List<SqlId> insertId;

	private List<Class<? extends IEvaluateResultMapping>> mappings;

	private EvaluateResultSqlId(List<SqlId> deleteId, List<SqlId> insertId,
			List<Class<? extends IEvaluateResultMapping>> mappings) {
		this.deleteId = deleteId;
		this.insertId = insertId;
		this.mappings = mappings;

	}
error:The constructor EvaluateResultSqlId(List<SqlId>,List<SqlId>,List<Class<EvaluateResult2G4c_1_f>>) is undefined
建议LZ先了解下JAVA的构造函数的用法。
网钛CMS(OTCMS) PHP版 基于PHP+sqlite/mysql的技术架构,UTF-8编码,不但可以适用于广泛的新闻/文章发布型网站,还适用于资讯门户类网站,让不懂代码但又想建立自己网站的朋友,使用网钛CMS系统,通过后台简单的配置,就能拥有一个个性化的自己的网站。 后台有插件平台,后期将会推出丰富多样的可选插件,如淘宝客插件、在线充值支付插件、积分兑换礼品插件、签到得积分插件等扩展网站功能。 网钛CMS(OTCMS) PHP版 以简单、实用、傻瓜式操作而闻名,无论在功能,人性化,还是易用性方面,都有了长足的发展,网钛CMS的主要目标用户锁定在中小型网站站长,让那些对网络不是很熟悉,对网站建设不是很懂又想做网站的人可以很快搭建起一个功能实用又强大,操作人性又易用。网钛CMS更专注于个人网站或中小型网站的构建,当然也不乏有企业用户等在使用本系统,使用过网钛CMS的用户都会它好评不断。 网钛CMS PHP版 更新记录: 2021年05月18日 V6.01 修复补丁 01.[修复]修复后台生成文章内容页(自定义)有些内容页右侧最新、推荐、热门文章没文章记录BUG 02.[修复]修复新默认模板1254px宽度多项宽度css样式微调不到位BUG 03.[插件]修复新默认模板下淘宝客商品显示宽度css样式有问题 04.修复几个细节BUG 2021年05月10日 V6.00 升级包 01.[新增]后台 管理员专区→后台参数配置 提示待处理信息范围 增加 实名审核会员 项 02.[新增]后台 常规设置→网站参数设置 基本信息 增加 前台Frame页面 项 03.[新增]后台 常规设置→网站参数设置 基本信息 增加 session本地保存 项 04.[新增]后台 会员管理 增加 实名状态 项 05.[新增]后台 常规设置→网站参数设置 文章路径 增加 搜索页路径模式:伪静态(search/搜索词)(仅支持标题搜索) 06.[新增]后台 会员管理→站内信息管理 增加 发公告 功能 07.[新增]后台 新增/修改会员 增加 修改签到信息 项 08.[新增]后台 模板功能→模板参数设置 首页 增加 会员登录窗口 项 09.[完善]前台 页面缓存去掉 标签页、搜索页,减少页面缓存量 10.[升级]前台 默认模板界面宽1036px升级为宽1254px,以适应现在越来越高分辨率。旧模板保留为“官网默认2016版” 11.[修复]修复会员注册、忘记密码,用户名自动检查 存在 用户名枚举BUG 12.[插件]后台 会员详情页 增加 充值记录 按钮 13.[插件]后台 常规设置→插件参数设置 会员类 推广提现 增加 手续扣税 和 积分转佣金 项 14.[插件]后台 常规设置→插件参数设置 文章类 增加 标签聚合页:名称、每页数量、最多显示几页 项 15.[插件]后台 会员管理 增加 推广提现会员 按钮 16.[插件]后台 模板功能→模板参数设置 首页 增加 tag标签窗口 项 17.[插件]后台 模板功能→模板参数设置 列表页/内容页 增加 列表tag标签窗口 项 18.[插件]前台WAP手机版 页面缓存去掉 标签页、搜索页,减少页面缓存量 19.[插件]修复新媒体模板列表页显示的二级栏目链接错误的BUG 20.[插件]修复打赏插件,上传的云存储图片前台显示不出来了BUG 21.修复诸多细节BUG

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧