Аргумент не присваивается int - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь преобразовать код в отражение.Это точный код, который я пытаюсь преобразовать в отражение

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 голосов
/ 13 декабря 2018

Обработка возвращаемого значения 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...