如何在内部函数中使用类变量?

Posted

技术标签:

【中文标题】如何在内部函数中使用类变量?【英文标题】:How to use class variable inside inner function? 【发布时间】:2019-11-19 03:31:36 【问题描述】:

我想使用内部函数内部的类成员

我尝试将变量设为全局变量,但收到错误“预期的类或接口”

@Override
    public void onMapReady(GoogleMap googleMap) 
        // Add a marker in current location,
        // and move the map's camera to the same location.
        //Location currentLocation = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
        FusedLocationProviderClient fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) 
            ActivityCompat.requestPermissions(this,
                    new String[]Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION,
                    MY_PERMISSIONS_REQUEST_ACCESS_LOCATION);
        else 
            mFusedLocationClient.getLastLocation().addOnSuccessListener(new OnSuccessListener<Location>() 
                @Override
                public void onSuccess(Location location) 
                    wayLongitude = location.getLongitude();
                    wayLatitude = location.getLatitude();
                    /*LatLng sydney = new LatLng(wayLatitude, wayLongitude);
                    googleMap.addMarker(new MarkerOptions().position(sydney)
                            .title("Marker in Sydney"));
                    googleMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));*/
                
            );
        

我希望能够在“OnSuccess”函数中执行“googleMap.addMarker”。 我该怎么做?

【问题讨论】:

我认为应该可以,但是要详细了解问题,最好将类代码与相关数据共享。从错误来看,您似乎缺少在代码中的任何位置使用 classinterface 关键字。 【参考方案1】:

您需要将 googleMap 参数声明为 final:

public void onMapReady(final GoogleMap googleMap) 
    //...

【讨论】:

以上是关于如何在内部函数中使用类变量?的主要内容,如果未能解决你的问题,请参考以下文章

使用在内部结构定义中保存函数的类成员变量,这些函数将用作 unordered_map 对象的模板参数

C++ - 在内部,当定义一个类的成员函数时,应该使用成员变量名称还是它的 getter 函数?

JS封闭函数闭包内置对象

十闭包

一个类能否在内部监控其成员函数的使用和参数

js--变量