Java создать класс с помощью String - PullRequest
0 голосов
/ 04 марта 2020

У меня есть три класса, Foo и Bar и C, Foo и Bar extension C.

У меня также есть строка s.

Я хочу знать, есть ли способ написать следующую программу без 'if'.

C c;
if (s.equals("foo"))
    c = new Foo();
else
    c = new Bar();

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 04 марта 2020

Если ваш вопрос заключается в том, чтобы узнать о каком-либо способе построения объекта с помощью полиморфизма на основе аргумента String, я полагаю, вы можете использовать шаблон фабричного дизайна ссылка здесь для достижения sh вашей цели.

У фабричного класса будет создатель, подобный следующему:

C createCobject(String str);

внутри createCObject вы можете выполнить проверку строки и определить хотите ли вы построить Foo () или Bar (). Так как Foo и Bar являются производными от типа C, вы можете вернуть любой из этих двух типов на основе переданной строки аргумент .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...