У меня есть эта переменная int внутри класса StringSplit, значение которой мне нужно передать другому классу с именем EndStatement для распечатки;Я не могу передать это как параметр, хотя я думаю.Как мне лучше всего получить переменную туда, где она мне нужна?Может кто-нибудь помочь с подсказкой?Я читал учебники по Java, но не совсем понял.Переменные и их передача кажутся одной из моих ахиллесовых пят в программировании на Java.
РЕДАКТИРОВАТЬ В ДОБАВИТЬ: parseCommands
может вызывать несколько различных классов операторов, например EndStatement или PrintlnStatement, в зависимости от первого элемента проанализированного массиваиз строки, которая служит ключевым словом для HashMap с именем commandHash.Классы Statement реализуют интерфейс Directive, который имеет только метод с именем execute
с параметром String[] parts
.(EndStatement implements Directive
).Расширен метод parseCommands
, чтобы показать, что происходит.
public class StringSplit
{
public void parseCommands(String fileName)
{
//FileReader and BufferedReader to read a file with the code
//to execute line by line into an ArrayList myString
int lineCounter=0; //need to get this variable's value into class EndStatement
for (String listString: myString)
{
lineCounter++;
String[] parts=listString.trim.split("[\\s]+", 2)//split String into 2 parts
//to get commands
Directive directive= commandHash.get(parts[0])//parts[0] is the hashmap keyword
}
public class EndStatement implements Directive
{
public void execute(String[] parts)
{
//need to get lineCounter here--how?
System.out.print(lineCounter +"lines processed.");
}
public static void main (String[]args)
StringSplit ss = new StringSplit();
ss.parseCommands(args[0]);
}