Я хочу каким-то образом ввести функцию печати в метод.
Есть два способа интерпретировать это.
Вы можете просто сказать, что хотите напечатать в рамках метода methodOne
. Это просто:
public static String methodOne(String name){
String studentName = name + " is his name";
System.out.println(studentName);
return studentName;
}
Комментарии:
Если вы собираетесь сделать это таким образом, нет очевидной причины, почему methodOne
нужно вернуть что-нибудь. Вы можете объявить его как void
метод.
Возможно, это плохой дизайн. Вообще говоря, метод должен делать одну вещь. (Принцип разработки - разделение интересов (поэтому C).) Но этот модифицированный метод делает две вещи. Он формирует строку и печатает ее. И поскольку он печатает его в определенном c месте (стандартный вывод), его полезность ограничена. (Что если я хочу создать эту строку, не печатая ее? Что если я хочу напечатать ее в другом потоке?)
Вторая интерпретация заключается в том, что вы буквально хочет передать метод println
методу methodOne
, чтобы он мог его вызывать. Вот как вы могли бы это сделать:
public static String methodOne(String name,
java.util.function.Consumer<String> fn){
String studentName = name + " is his name";
fn(studentName);
return studentName;
}
и назвать это так
methodOne("Fred", System.out::println);