许多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
方法。