java - 在 java 中使用 Lambda 显示文本
问题描述
手头的工作:-
写一个main方法。
-
Invoke the above static method.
-
Using that reference invoke the default method getInput.
-
Store that String in a variable.
-
Invoke the displayText method by passing this String as parameter.
-
The output should be as shown in the sample data below.
输入:沃森
预期输出:欢迎 Watson
到目前为止,我已经编写了以下代码并且它也可以工作,但是我的评估失败了。有没有其他方法可以满足问题中给出的所有要求。
Main.java
1 public class Main implements DisplayText
2 {
3 public static void main(String args[])
4 {
5 Main obj = new Main();
6 obj.welcomeMessage();
7 //String name=obj.getInput();
8 //obj.displayText(name);
9 }
10 public static DisplayText welcomeMessage()
11 {
12 DisplayText ref = (String str) -> {
13 System.out.println("Welcome "+str);
14 };
15 ref.displayText(ref.getInput());
16 return ref;
17 }
18 public void displayText(String text)
19 {
20 System.out.println(text);
21 }
22 }
DisplayText.java
1 import java.util.*;
2 public interface DisplayText
3 {
4 public void displayText(String text);
5 Scanner sc = new Scanner(System.in);
6 public default String getInput()
7 {
8 String message = sc.nextLine();
9 return message;
10 }
11
12 }
解决方案
问题是该DisplayText
接口是“功能接口”,您必须对其进行注释。无需使 Main 类实现该接口,也无需定义Scanner
as 接口成员。
我将以这种方式实施解决方案:
import java.util.Scanner;
@FunctionalInterface
interface DisplayText {
void displayText(String text);
public default String getInput()
{
System.out.print("Your name: ");
Scanner sc = new Scanner(System.in);
return sc.nextLine();
}
}
public class Main {
public static void main(String... args) {
welcomeMessage();
}
public static void welcomeMessage()
{
DisplayText ref = (String str) -> System.out.println("Welcome "+str);
ref.displayText(ref.getInput());
}
}
这是我得到的输出:
D:\Marco\workspace>javac Main.java
D:\Marco\workspace>java Main
Your name: Watson
Welcome Watson
推荐阅读
- excel - 有没有使用 VBA 宏代码对表格进行排序的快速方法?
- java - 按姓名搜索联系人列表
- python - 在熊猫中将 onehotencoder 值合并在一起
- javascript - 如何使用 equalTo 设置数据(未找到数据)javascript(解析平台)
- spring - Spring缺少查询参数异常处理
- domain-driven-design - 给新手的领域驱动设计实体建议
- django - 如何在 django-ckeditor 中上传图像时禁用非管理员的浏览服务器选项?
- java - 请H,错误:无法执行android的方法:onClick
- c# - 集合 CassandraCSharpDriver 中不允许使用非冻结的 UDT
- git - Git 从脚本推送到另一个仓库