代码之家  ›  专栏  ›  技术社区  ›  SamHoque

参数不可分配给“int”

  •  0
  • SamHoque  · 技术社区  · 7 年前

    android.os.Process.killProcess(android.os.Process.myPid());
    

    这是我的反射代码。

    Class<?> process = Class.forName("android.os.Process");
    Method killProcess = process.getMethod("killProcess", Integer.TYPE);
    Method myPid = process.getMethod("myPid");
    killProcess.invoke(null, myPid.invoke(null));
    

    问题是我在这条线上收到了警告 myPid.invoke(null) 标题中所述的警告是 Argument is not assignable to 'int'

    我的问题是如何在不使用超越的情况下解决此警告?我不想用正确的方法来解决这个问题,而不是使用超越警告注释或禁用警告。

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  0
  •   SamHoque    7 年前

    套管 invoke 从返回值 myPid 解决了警告问题。

    killProcess.invoke(null, (int) myPid.invoke(null));
    

    将其强制转换为后的完整代码段 int

    Class<?> process = Class.forName("android.os.Process");
    Method killProcess = process.getMethod("killProcess", Integer.TYPE);
    Method myPid = process.getMethod("myPid");
    killProcess.invoke(null, (int) myPid.invoke(null));
    

    将代码段强制转换为后的代码段快照 int

    enter image description here