Почему объекты должны быть созданы при вызове некоторых функций - PullRequest
0 голосов
/ 03 апреля 2020

В классе Geocoder. java есть метод ниже

 public List<Address> getFromLocation(double latitude, double longitude, int maxResults)
        throws IOException {
        if (latitude < -90.0 || latitude > 90.0) {
            throw new IllegalArgumentException("latitude == " + latitude);
        }
        if (longitude < -180.0 || longitude > 180.0) {
            throw new IllegalArgumentException("longitude == " + longitude);
        }
        try {
            List<Address> results = new ArrayList<Address>();
            String ex =  mService.getFromLocation(latitude, longitude, maxResults,
                mParams, results);
            if (ex != null) {
                throw new IOException(ex);
            } else {
                return results;
            }
        } catch (RemoteException e) {
            Log.e(TAG, "getFromLocation: got RemoteException", e);
            return null;
        }
    }

Здесь getFromLocation - функция-член класса. Поэтому, чтобы вызвать эту функцию, мы не можем просто назвать это как List<Address> address = Geocoder.getFromLocation(//the required parameters). Я знаю, что это не сработает, и чтобы заставить его работать, нам нужно создать объект класса Geocoder. Так что кто-нибудь может объяснить, почему создание объекта необходимо, я немного запутался, поскольку видел, как в некоторых случаях функции вызываются напрямую, используя имена классов

...