许多Android java方法都返回数字常量值。在向用户记录或显示值时,我想自动将这些值转换为字符串(类似于Windows API FormatMessage() / FORMAT_MESSAGE_FROM_SYSTEM)。但是,除了切换所有可能的值并生成匹配的字符串外,我找不到其他方法。

例如:android.net.wifi.p2p.WifiP2pManager.ActionListener.onFailure()返回一个整数值:ERROR(0),P2P_UNSUPPORTED(1),BUSY(2)。我想将数字转换为适当的字符串。我可以这样写一个开关盒:

public void onFailure(int reason) {
    String strReason;
    switch (reason) {
    case WifiP2pManager.BUSY: strReason = "BUSY"; break;
    case WifiP2pManager.ERROR: strReason = "ERROR"; break;
    case WifiP2pManager.P2P_UNSUPPORTED: strReason = "P2P_UNSUPPORTED"; break;
    default: strReason = Integer.toString(reason);
    }
    Log.d(TAG, "onFailure failed, reason=" + strReason);
}


但我想避免这种情况,尤其是当可能的返回值超过3个时。

我尝试在StackExchange和其他站点上进行大量搜索,但是所有结果都与整数解析有关。

有什么方法可以实现我的目标吗?

最佳答案

您要查找的功能根本不存在。您别无选择,只能坚持使用switch方法。

08-04 07:12