场景:


我有两个名为ListLayout和GridLayout的类,它们都实现CustomLayout。
用户输入一个表示他们希望使用的布局的字符串(例如“ ListLayout”)


如何基于用户输入的字符串创建ListLayout对象?我需要等同于这样做:

CustomLayout layout = new ListLayout();


理想情况下,我需要找到一个解决方案,使我可以在实际制作对象之前检查输入的String是否对应于实现CustomLayout的预定义类(因为如果它不存在,它将抛出错误,因此我不检查)预先)。

这真的让我开始思考...。在此先感谢您的帮助

最佳答案

做这样的事情:

String userInput = //get user's input
while(!userInput.equalsIgnoreCase("ListLayout") && !userInput.equalsIgnoreCase("gridLayout")){
   System.out.println("Please enter a valid option");
   userInput = //get user's input again
}
CustomLayout layout;
if(userInput.equalsIgnoreCase("ListLayout")
   layout = new ListLayout();
else
   layout = new GridLayout();

10-06 09:18