我有一个类:
public RetryAfterEntity(boolean retryAfter, long retryAfterTime, int returnStatusCode) {}
我用以下方法调用构造函数:
private RetryAfterEntity retryAfterEntity=new RetryAfterEntity(false, 20, 405);
它没有报告任何编译错误。
但当我使用mvn-deploy将代码构建到jar并运行它时,它会弹出错误:
java.lang.NoSuchMethodError: com.sip.core.telephone.header.entity.RetryAfterEntity.<init>(ZII)V
将20更新为20i后,一切正常吗?那么根本原因是什么呢?
尝试
private RetryAfterEntity retryAfterEntity=new RetryAfterEntity(false, 20L, 405);
原因是编译器自动将整数读取为..int。你需要通过使用"L"告诉他这20不是int。
同样的情况也适用于doubles和float-您必须编写
float x = 3.15f;
因为编译器会自动将非整数读取为双精度。