1、Java Stream:java.lang.IncompatibleClassChangeError: vtable stub
问题代码:
import com.google.common.base.Functions;
Map<Long, Item> itemMap = itemList.stream().collect(Collectors.toMap(Item::getId, Functions.identity()));
问题原因:
Functions是com.google.common.base包中的类,使用了错误的类方法。
解决办法:
使用正确的java.util.function包中的Function类(注意:Function后面没有s),代码如下:
import java.util.function.Function;
Map<Long, Item> itemMap = itemList.stream().collect(Collectors.toMap(Item::getId, Function.identity()));
2、Java 包装类:java.lang.NullPointerException
问题代码:
* 属性定义:Integer age;
* 代码说明:当age为无效值时(age==null或age==0),统一返回null值;否则,返回age实际值。
item.getAge() == 0 ? null : item.getAge();
问题原因:
Integer包装类在遇到操作符==时,会先进行拆箱操作,然后获取实际数值进行比较;
当原包装类属性为null时(age==null),拆箱操作导致NullPointerException异常。
解决办法:
先进行Null值检测,再进行数值比较,代码如下:
(item.getAge() == null || item.getAge() == 0) ? null : item.getAge();
3、服务端返回数值正确,但浏览器显示错误:
问题原因:
不同浏览器对数值长度有不同的限制,导致数值会被截取掉部分内容(后面部分二进制位1变成0),最终显示错误。
解决办法:
目前没有找到根本解决方案,临时方案是提供String类型字段,将长数值以字符串类型返回给前端展示。
1、Java Stream:java.lang.IncompatibleClassChangeError: vtable stub问题代码:import com.google.common.base.Functions;Map<Long, Item> itemMap = itemList.stream().collect(Collectors.toMap(Item::ge...
IncompatibleClassChangeError异常
异常IncompatibleClassChangeError:的原因是web项目的webroot中web-inf的lib目录下的jar包冲突,存在同一个jar包的不同版本,或者是因为不同jar的版本冲突导致的
我认为的好像是hibernate处理aop的jar包与quartz.jar冲突导致的,我的工程是这样,然后我,换了jar包,在s...
maven项目的pom.xml引入其他服务的jar,开发环境运行正常,但是部署到服务器上却启动报错:
java
.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface .....
原因分析:“Incom...
错误场景1
我在项目中遇到此报错的实例。这个错误官方解释是:在某些类定义发生不兼容的类更改时发生,当前执行方法所依赖的某个类的定义已更改。
public class B extends A{
public class A{
// 这是更改前的代码
public transient final Logger log = LoggerFactory.getLogger(getClass);
今天用Middlegen生成hibernate的hbm.xml和
java
文件,出现图形界面后,点击“generate”的按钮后,抛出了“
java
.lang. IncompatibleClassChangeError”的异常,让人摸不着头脑,百度找了一下,看来也有“志同道合”者,竟然和我一样,第一次使用的时候成功生成hbm.xml文件,再次使用就出错。
解决方法:...
最近开发中遇到类冲突报错
java
.lang.IncompatibleClassChangeError,遂了解并复现一些case
java
.lang.IncompatibleClassChangeError 解释
package
java
.lang;
* Thrown when an incompatible class change has occurred to some class
* definition. The definition of some class, on w
java
.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected
at org.apache.mahout.common.HadoopUtil.getCustomJobName(HadoopUtil.
java
:174)
public class AnniversaryTracker {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入纪念日名称:");
String name = input.nextLine();
System.out.print("请输入纪念日日期(格式:YYYY-MM-DD):");
String date = input.nextLine();
System.out.println("您输入的纪念日是:" + name + ",日期是:" + date);
您可以根据需要进行修改和扩展,例如将纪念日保存到文件中,或者添加提醒功能等。
异或(^)的性质与应用
banbao990:
链表:快慢指针