Перейти к содержимому

Как вызвать метод в методе java

  • автор:

Как вызвать метод из другого класса java

Если вызываемый метод был объявлен как static , то для вызова нам достаточно указать имя класса, содержащего метод, и имя метода.

В противном случае нам придется сперва создать объект этого класса и вызвать метод у созданного объекта.

public class App  public static void main(String[] args)  MyClass.staticMethod(); // => Статический метод MyClass myClass = new MyClass(); myClass.notStaticMethod(); // => Нестатический метод > > class MyClass  public static void staticMethod()  System.out.println("Статический метод"); > public void notStaticMethod()  System.out.println("Нестатический метод"); > > 

Как из метода вызвать другой метод?

При работе с API я замечаю как интересно можно «вытащить» данные из объекта. Допустим, я хочу узнать имя друга у человека с именем Alex. Чтобы это сделать, я пишу:
String NameOfThumb = person.getPerson(«Alex»).getFriends.get(0).getName(); Как сделать так, чтобы вызывая один метод, я мог сразу вызвать внутри другой, а внутри другого следующий? Как называется такое действие? В интернете я в основном натыкаюсь на extends , implements , но примеры, которые приводят, слишком простые и обощенные. Как я понимаю, что мне стоит использовать это, только я не знаю как именно, чтобы добиться того же результата, что я привел сверху. Прошу меня поправить, если я некорректно выразился и неправильно использовал терминологию.

Отслеживать
задан 30 окт 2018 в 11:16
Antonio112009 Antonio112009
2,641 1 1 золотой знак 20 20 серебряных знаков 44 44 бронзовых знака

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Это называется fluent interface и достигается возвращением из метода того объекта, методы которого могут вызываться дальше в цепочке. Часто из методов возвращается ссылка на самого себя.

public class Example < public Example someMethod() < System.out.println("Hello"); return this; >public Example anotherMethod() < System.out.println("World"); return this; >public static void main(String[] args) < Example obj = new Example(); obj.someMethod().anotherMethod(); >> 

Отслеживать
ответ дан 30 окт 2018 в 12:43
Sergey Gornostaev Sergey Gornostaev
66.5k 6 6 золотых знаков 53 53 серебряных знака 112 112 бронзовых знаков
Это похоже на шаблон Builder , только без .build() в конце )))
– user224616
30 окт 2018 в 13:06

@ОлексійМоренець да, действительно похоже. Особенно в стримах, где промежуточные операции изменяют состояние потока, а терминальная операция что-либо «строит» из этого состояния.

Вызов метода в Java, зная его название в виде строки

Проблема, которая может возникнуть при работе с Java, это необходимость вызвать метод, имя которого дано в виде строки. Предположим, есть две переменные:

Алексей Кодов
Автор статьи
10 июля 2023 в 16:53

Проблема, которая может возникнуть при работе с Java, это необходимость вызвать метод, имя которого дано в виде строки. Предположим, есть две переменные:

Object obj; String methodName = "getName";

Задача состоит в том, чтобы вызвать метод, указанный в переменной methodName , для объекта obj , не зная заранее класс этого объекта.

Предположим, что метод, который нужно вызвать, не принимает параметров и возвращает строку. Это типичный геттер для Java-бина.

Для решения этой задачи можно воспользоваться механизмом рефлексии в Java. Рефлексия позволяет исследовать информацию о классах, интерфейсах, полях и методах во время исполнения программы, а также вызывать методы и создавать новые объекты.

Вот как это можно сделать:

try < Method method = obj.getClass().getMethod(methodName); String result = (String) method.invoke(obj); >catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e)

Объясним, что происходит в этом коде.

  1. Method method = obj.getClass().getMethod(methodName); — получаем объект Method , представляющий метод с именем methodName для класса объекта obj .
  2. String result = (String) method.invoke(obj); — вызываем этот метод для объекта obj и получаем результат. Поскольку известно, что метод возвращает строку, результат приводится к типу String .

Обратите внимание, что этот код может выдать исключения NoSuchMethodException , IllegalAccessException и InvocationTargetException , которые нужно обработать.

Таким образом, с помощью рефлексии можно динамически вызывать методы в Java, зная их имена в виде строк.

Как вызвать метод в Java

wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали авторы-волонтеры.

Количество просмотров этой статьи: 126 948.

В этой статье:

Вам нужно многое выучить, чтобы научиться программировать на Java. Классы, методы, исключения, конструкторы, переменные и так далее — все это может едва ли не свести с ума. Учиться всему лучше поэтапно, и сейчас мы расскажем вам про методы.

Java Methods Step 1.png

Метод — это эквивалент функции в С-подобных языках. Методы нужны для повторного использования кода. Набор выражений создает метод, метод же может быть вызван другим выражением. Будучи вызванными, все выражения, являющиеся частью метода, будут выполнены. Например: » public static void methodExample() <> «. В нем нет кода, но есть ключевые слова (3) перед названием метода, а именно public , static и void .

Java Methods Step 2.png

Слово public перед названием метода значит, что метод можно вызвать откуда угодно, включая другие классы и даже файлы/пакеты, если вы импортируете соответствующий класс. Заменить public можно следующими вариантами: protected и private . Если метод protected , то только этот класс и подклассы (классы, созданные на основе класса) могут вызывать данный метод. Если метод private , то он может быть вызван только внутри класса. Последнее ключевое слово, в общем-то, даже не слово. Оно используется, когда вместо public , protected или private у вас ничего. Это вызов по умолчанию, что означает, что лишь классы в том же пакете могут взвывать этот метод.

Java Methods Step 3.png

Второе ключевое слово, static , означает, что метод принадлежит классу, а не примеру класса (объекту). Статические методы могут вызывать с помощью имени класса: » ExampleClass.methodExample() «. Впрочем, если ключевое слово static отсутствует там, тогда метод может быть вызван только через объект. Например, если класса называется ExampleObject , и у него есть конструктор (для создания объектов), тогда мы может создать новый объект, напечатав ExampleObject obj = new ExampleObject(); , и вызвать метод так » obj.methodExample(); «.

Java Methods Step 4.png

Последнее слово перед название метода — void . Слово void значит, что метод ничего не возвращает (не отдает ничего при вызове). Если вы хотите, чтобы при вызове метод что-то да отдавал, тогда просто замените слово void типом данных объекта или примитива, который вы хотите получать. Затем просто добавьте return плюс объект того типа где-то ближе к концу кода метода.

Java Methods Step 5.png

Вызывая метод, который что-то возвращает, вы можете использовать возвращаемое им. Например, если someMethod() возвращает целое число, тогда вы можете задать целое число для того, что возвращается, так: » int a = someMethod(); «

Java Methods Step 6.png

Некоторые методы требуют параметры. Метод, требующий параметр целого числа, выглядит так: someMethod(int a) Используя подобный метод, вы напишите имя метода, затем целое число в скобках: someMethod(5) или someMethod(n) если n — целое число.

Java Methods Step 7.png

У методов может быть несколько разделенных запятыми параметров. Если метод someMethod требует двух параметров, int a и Object obj , он будет выглядеть так: » someMethod(int a, Object obj) «. Чтобы использовать этот метод, его надо вызвать по имени метода, после которого нужно написать целое число и объект в скобках: someMethod(4, thing) где thing — это Object .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *