如何在不将其声明为最终变量的情况下访问内部 class 的变量
how to access to a variable form an inner class without declaring it as final
我有一个需要在内部 class 中使用的变量,但是 java 让我使用它的唯一方法是将它声明为最终的,但我需要在没有它的情况下使用它, 让我把代码贴给你:
for (Taxi taxi : taxis) {
final Ubicaciones u= taxi.getUbicacionActual();
LatLng ubicacion= new LatLng(Double.parseDouble(u.getLatitud()), Double.parseDouble(u.getLongitud()));
map.moveCamera(CameraUpdateFactory.newLatLngZoom(ubicacion,15));
MarkerOptions punto= new MarkerOptions().position(ubicacion);
map.addMarker(punto);
map.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
return null;
}
@Override
public View getInfoContents(Marker marker) {
View v = getLayoutInflater().inflate(R.layout.info_title,null);
TextView info1= (TextView) v.findViewById(R.id.info1);
TextView info2= (TextView) v.findViewById(R.id.info2);
TextView info3= (TextView) v.findViewById(R.id.info3);
info1.setText("Fecha: "+u.getFecha());
info3.setText("Longitud: "+u.getLongitud().toString());
return v;
}
});
它是 "Ubicaciones u" 的变量,正如您在代码中看到的那样,它没有声明为 final,谁能告诉我如果没有它我该如何使用它,最好的问候。
将所需变量声明为全局变量即可解决您的问题。但我建议您阅读答案 here.
我有一个需要在内部 class 中使用的变量,但是 java 让我使用它的唯一方法是将它声明为最终的,但我需要在没有它的情况下使用它, 让我把代码贴给你:
for (Taxi taxi : taxis) {
final Ubicaciones u= taxi.getUbicacionActual();
LatLng ubicacion= new LatLng(Double.parseDouble(u.getLatitud()), Double.parseDouble(u.getLongitud()));
map.moveCamera(CameraUpdateFactory.newLatLngZoom(ubicacion,15));
MarkerOptions punto= new MarkerOptions().position(ubicacion);
map.addMarker(punto);
map.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
return null;
}
@Override
public View getInfoContents(Marker marker) {
View v = getLayoutInflater().inflate(R.layout.info_title,null);
TextView info1= (TextView) v.findViewById(R.id.info1);
TextView info2= (TextView) v.findViewById(R.id.info2);
TextView info3= (TextView) v.findViewById(R.id.info3);
info1.setText("Fecha: "+u.getFecha());
info3.setText("Longitud: "+u.getLongitud().toString());
return v;
}
});
它是 "Ubicaciones u" 的变量,正如您在代码中看到的那样,它没有声明为 final,谁能告诉我如果没有它我该如何使用它,最好的问候。
将所需变量声明为全局变量即可解决您的问题。但我建议您阅读答案 here.