java中list T 和 list 问号

List<T>可以进行诸如add、remove等操作,因为它的类型是固定的T类型,在编码期 不需要进行任何的转型操作。

List<?>是只读类型的,不能进行增加、修改操作,因为编译器不知道List中容纳的是 什么类型的元素,也就无毕校验类型是否安全了,而且List<?>读取出的元素都是Object类 型的,需要主动转型,所以它经常用于泛型方法的返回值。注意,List<?>虽然无法增加、修 改元素,但是却可以删除元素,比如执行remove、clear等方法,那是因为它的删除动作与泛型类型无关

List<Object>也可以读写操作,但是它执行写入操作时需要向上转型(Upcast),在读 取数据后需要向下转型(Downcast),而此时已经失去了泛型存在的意义了。

哒个比方,有一个篮子用来容纳物品,List<T>的意思是说,“嘿,我这里有一个篮子, 可以容纳固定类别的东西,比如西瓜、番茄等”。List<?>的意思是说“嘿,我也有一个篮子, 我可以容纳任何东西,只要是你想得到的”。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java,当你使用`FormData`进行表单数据的提交,如果其包含非ASCII字符(如文),可能会遇到编码问题,导致显示为问号(?)或乱码。这是因为默认情况下,如果没有正确设置请求的字符编码,浏览器会尝试用它自身的默认编码(如ISO-8859-1或UTF-8的子集)来解码数据,如果该编码无法对应到实际的字符,就会显示问号。 解决这个问题通常需要以下几个步骤: 1. **设置正确的请求头**: 在发送请求时,确保设置了正确的`Content-Type`头,指定为`application/x-www-form-urlencoded`或`multipart/form-data`,并加上`charset=utf-8`,例如: ```java headers.setContentType(new MediaType("application", "x-www-form-urlencoded", StandardCharsets.UTF_8)); ``` 2. **设置`FormData`的编码**: 在构建`FormData`时,确保设置正确的编码,比如: ```java FormData formData = new FormData(); formData.add("key", "文字符".getBytes(StandardCharsets.UTF_8), "value"); ``` 3. **服务器端处理**: 如果是后端处理,确保服务器解析请求时也设置正确的字符编码,如使用Spring的话,可以在`WebMvcConfigurerAdapter`配置: ```java @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(new MappingJackson2HttpMessageConverter()); converters.add(new FormHttpMessageConverter(Charset.forName("UTF-8"))); } ``` 4. **编码错误检查**: 如果前端是从用户输入获取的,确保在提交前已经正确转码,避免因为用户输入的是其他编码的数据而引起的乱码问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值