参数不能分配给'int'

时间:2018-12-13 09:53:14

标签: java android reflection process

我正在尝试将代码转换为反射。这是我要转换为反射的确切代码

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 个答案:

答案 0 :(得分:0)

使用invoke的{​​{1}}返回值来解决警告。

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)); 后的快照

enter image description here