在构建jar之后,弹出错误NoSuchMethodError for int but long ok



我有一个类:

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;

因为编译器会自动将非整数读取为双精度。

最新更新