Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么在这个代码片段中整数被视为枚举?_Java_Android_Enums_Int_Android Permissions - Fatal编程技术网

Java 为什么在这个代码片段中整数被视为枚举?

Java 为什么在这个代码片段中整数被视为枚举?,java,android,enums,int,android-permissions,Java,Android,Enums,Int,Android Permissions,我正在编写我的第一个android应用程序,下面是关于android开发者的指南和资源。我的背景:显然没有android开发经验,很少有java开发经验。后者可能是我陷入困境的原因 因此,请看一下有关处理权限的代码片段(来自): 正如你所看到的,我的权限、请求、阅读联系人是一个int常量 然后,它显示了回调方法onRequestPermissionsResult()的实现: 正如您所看到的,switch语句不将requestCode视为int,但它似乎将其视为Enum。但是,如果我尝试将枚举传递

我正在编写我的第一个android应用程序,下面是关于android开发者的指南和资源。我的背景:显然没有android开发经验,很少有java开发经验。后者可能是我陷入困境的原因

因此,请看一下有关处理权限的代码片段(来自):

正如你所看到的,我的权限、请求、阅读联系人是一个int常量

然后,它显示了回调方法onRequestPermissionsResult()的实现:

正如您所看到的,switch语句不将requestCode视为int,但它似乎将其视为Enum。但是,如果我尝试将枚举传递给requestPermissions(),它会给我一个错误,因为方法签名要求requestCode为int


我错过了什么?说来话长。短-性能和内存有效性

这里有更多的细节

这是谷歌的视频

但是现在,如果您真的需要,在代码中使用枚举是可以的

关于
requestCode
,Android系统只使用较低的16位。(
ActivityCompat.requestPermissions(thisActivity,
    new String[]{Manifest.permission.READ_CONTACTS},
    MY_PERMISSIONS_REQUEST_READ_CONTACTS);

// MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
// app-defined int constant. The callback method gets the
// result of the request.
public void onRequestPermissionsResult(int requestCode,
        String[] permissions, int[] grantResults) {
    switch (requestCode) {
        case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
            // If request is cancelled, the result arrays are empty.
            if (grantResults.length > 0
                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                // permission was granted, yay! Do the
                // contacts-related task you need to do.
            } else {
                // permission denied, boo! Disable the
                // functionality that depends on this permission.
            }
            return;
        }

        // other 'case' lines to check for other
        // permissions this app might request.
    }
}