gpt4 book ai didi

java - 我如何从另一个类(class)获得类(class)的值(value)

转载 作者:行者123 更新时间:2023-12-01 09:52:16 25 4
gpt4 key购买 nike

Original code is here NotificationUtils.java

我想从activeroom.java中获取roomid方法的值。我想我可以使用 getClass().getMethod() 。 ?
因此,此代码位于 NotficationUtils.java 中,并尝试从 ActivityRooms.java 获取“isRoomId”方法的字符串值

    public static boolean isAppIsInBackground(Context context,String chatRoomId) {
boolean isInBackground = true;
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT_WATCH) {
List<ActivityManager.RunningAppProcessInfo> runningProcesses = am.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo processInfo : runningProcesses) {
if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
for (String activeProcess : processInfo.pkgList) {
if (activeProcess.equals(context.getPackageName())) {

在 if () 旁边,我正在定义 m 方法,并且我想从“Activity 类”获取值“isRoomId”方法。

                              try {
Method m = activeProcess.getClass().getMethod("isRoomId",null);

if (chatRoomId.equals(m.toString()))
{
isInBackground = false;

}
} catch (NoSuchMethodException e) {
e.printStackTrace();
}

ActivityRoom.java 有 isRoomId 方法。

 public static String chatRoomId;
chatRoomId = intent.getStringExtra("chat_room_id");

public static String isRoomId()
{

return chatRoomId;
}

最佳答案

ActiveRoom 类的

isRoomId() 方法不是静态方法。因此,您需要实例化该类,然后调用该对象的方法。

如果 isRoomId 返回的值独立于类 ActiveRoom 的对象状态,那么您可以将其设为静态方法,如下所示。然后您可以从 NotficationUtils.java

调用此方法

方法

public static String isRoomId()
{
String chatRoomId="6";
return chatRoomId;
}

调用

ActiveRoom.isRoomId()

如果您计划在 isRoomId() 中编写的逻辑取决于对象状态,那么您需要在NotificationUtil 类中获取相关对象引用并调用该对象上的方法。

关于java - 我如何从另一个类(class)获得类(class)的值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37531272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com