Я начинающий программист, и это мой первый вопрос на этом форуме.Java-Как вызвать класс со строкой?
Я пишу простую текстовую приключенческую игру с использованием BlueJ в качестве компилятора, и я нахожусь на Mac. Проблема, с которой я столкнулся, заключается в том, что я хотел бы сделать мой код более автоматизированным, но я не могу назвать класс со строкой. Причина, по которой я хочу вызвать класс, и не иметь его в функции if, чтобы я мог использовать больше методов.
Вот как это будет работать в данный момент:
public class textadventure {
public method(String room){
if(room==street){street.enterRoom();}
}
}
public class street{
public enterRoom(){
//do stuff and call other methods
}
}
если заявление тестов для каждого класса/номер я создаю. То, что я хотел бы сделать код, - это автоматически сделать строку с номером класса, которое можно вызвать. Так он может действовать следующим образом:
Public method(string room){
Class Room = room;
Room.enterRoom();
}
Я уже посмотрел в использовании Class.forName, но все примеры были слишком общими для меня, чтобы понять, как использовать эту функцию. Любая помощь будет принята с благодарностью, и если есть какая-либо другая необходимая информация (например, более примерный код), я рад предоставить ее.
-Sebastien
Вот полный код:
import java.awt.*;
import javax.swing.*;
public class Player extends JApplet{
public String textOnScreen;
public void start(){
room("street1");
}
public void room(String room){
if(room=="street1"){
textOnScreen=street1.enterRoom();
repaint();
}
if(room=="street2"){
textOnScreen=street2.enterRoom();
repaint();
}
}
public void paint(Graphics g){
g.drawString(textOnScreen,5,15);
}
}
public abstract class street1
{
private static String textToScreen;
public static String enterRoom(){
textToScreen = "You are on a street running from North to South.";
return textToScreen;
}
}
public abstract class street2
{
private static String textToScreen;
public static String enterRoom(){
textToScreen = "You are on another street.";
return textToScreen;
}
}
У вас есть маленькая вещь, свисающая под вами ... –
Есть намного лучшие способы сделать это. Этот подход, который вы описываете, представляет собой огромный запах кода. (Egads, «stringly typed» code.) –
Если Java, 'Public' должен быть строчным, строка' string' должна быть в виде строки. 'textadventure' должен, по соглашению, если не грамматикой, также быть титульным. – Amadan