如何处理必需但空的实现?
What to do with required, but empty, implementations?
我有一个 google 地图 class
class MapActivity : FragmentActivity(), OnMapReadyCallback, LocationListener, GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener {
但是我只使用了实现提供的一些必需功能。
我将所有未使用的方法放在 class 的底部,如下所示:
override fun onConnected(p0: Bundle?) {
checkLocationPermission()
val mLocationProvider = FusedLocationProviderClient(this)
mLocationProvider.lastLocation.addOnCompleteListener { task ->
goToLocation(task.result.latitude, task.result.longitude)
}
}
override fun onStatusChanged(provider: String?, status: Int, extras: Bundle?) {
//To change body of created functions use File | Settings | File Templates.
}
override fun onProviderEnabled(provider: String?) {
//To change body of created functions use File | Settings | File Templates.
}
override fun onProviderDisabled(provider: String?) {
//To change body of created functions use File | Settings | File Templates.
}
override fun onConnectionSuspended(p0: Int) {
//To change body of created functions use File | Settings | File Templates.
}
override fun onConnectionFailed(p0: ConnectionResult) {
//To change body of created functions use File | Settings | File Templates.
}
有没有更好的方法来消除这些不需要的必需函数?
您必须实现Interface
的所有方法。
但是是的,在代码清理的情况下,你可以有一个额外的class
来实现interface
的所有方法。并将 class 与您的原件一起使用。
Click here 了解更多信息。
不,你不能做任何事情(除了按照建议创建另一个 class...),这是 接口隔离原则 的典型权衡。
无论如何,如果您需要监听位置变化更新,请使用
import com.google.android.gms.location.LocationListener;
告诉你只执行
void onLocationChanged(Location var1);
我还建议您使用 #region
并在您的编辑器上折叠代码以在视觉上清理您的 class。
希望对您有所帮助。
我有一个 google 地图 class
class MapActivity : FragmentActivity(), OnMapReadyCallback, LocationListener, GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener {
但是我只使用了实现提供的一些必需功能。 我将所有未使用的方法放在 class 的底部,如下所示:
override fun onConnected(p0: Bundle?) {
checkLocationPermission()
val mLocationProvider = FusedLocationProviderClient(this)
mLocationProvider.lastLocation.addOnCompleteListener { task ->
goToLocation(task.result.latitude, task.result.longitude)
}
}
override fun onStatusChanged(provider: String?, status: Int, extras: Bundle?) {
//To change body of created functions use File | Settings | File Templates.
}
override fun onProviderEnabled(provider: String?) {
//To change body of created functions use File | Settings | File Templates.
}
override fun onProviderDisabled(provider: String?) {
//To change body of created functions use File | Settings | File Templates.
}
override fun onConnectionSuspended(p0: Int) {
//To change body of created functions use File | Settings | File Templates.
}
override fun onConnectionFailed(p0: ConnectionResult) {
//To change body of created functions use File | Settings | File Templates.
}
有没有更好的方法来消除这些不需要的必需函数?
您必须实现Interface
的所有方法。
但是是的,在代码清理的情况下,你可以有一个额外的class
来实现interface
的所有方法。并将 class 与您的原件一起使用。
Click here 了解更多信息。
不,你不能做任何事情(除了按照建议创建另一个 class...),这是 接口隔离原则 的典型权衡。
无论如何,如果您需要监听位置变化更新,请使用
import com.google.android.gms.location.LocationListener;
告诉你只执行
void onLocationChanged(Location var1);
我还建议您使用 #region
并在您的编辑器上折叠代码以在视觉上清理您的 class。
希望对您有所帮助。