我有一堂课:

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升到20升后,可以吗?那么根本原因是什么?

最佳答案

尝试

private RetryAfterEntity retryAfterEntity=new RetryAfterEntity(false, 20L, 405);


原因是编译器自动将整数读取为.. int。您需要通过使用“ L”来告诉他这20不是整数。

同样的情况适用于双打和浮动-您必须编写

float x = 3.15f;


因为编译器会自动将非整数读取为double。

09-25 21:16