хотите написать класс такой, чтобы переменные и методы, объявленные в этом классе, использовались в нескольких классах - PullRequest
0 голосов
/ 12 июля 2019

Я хочу написать класс таким образом, чтобы значение переменной "monthInfoFile" использовалось во многих других классах.Я написал классы, как показано ниже, может кто-нибудь, пожалуйста, помогите мне, чтобы получить наилучший подход к этому.В классе GenerateMonthsInfo я вызываю другой метод класса «monthsInfo», в котором мне нужно получить значение переменной montlyInfoFile, объявленной в классе DetailShared.

Я хочу написать методы и переменную, объявленные в классе DetailShared, так, чтобыметод / переменная должны быть доступны в других классах, а переменная «monthInfoFile» после получения значения должна иметь возможность использовать это значение во всем потоке приложения.

DetailShared.java - значение, которое должно использоваться совместно

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;

class DetailShared {
    static boolean monthlyInfoFile;

    public static void checkinMonth(String path) {
        File informationFile = new File(filePath + "\\months.txt");
        if (informationFile.exists()) {
            monthlyInfoFile = true;
            checkOtherInformation();
        } else {
            monthlyInfoFile = false;
        }

    }

    public static void checkOtherInformation(String path) {

    //do something
    }
}

class PopulateTheBasics {
    // methods
    public void calculateTheBilling() {
        // want to get the value of monthlyInfoFile
    }
}

GenerateMonthsInfo.java - значение должно быть взято из класса DetailShared

class GenerateMonthsInfo {
    void monthsInfo(String path) {
        // want to get the value of monthlyInfoFile
        new DetailShared().checkinMonth(path);
        new PopulateTheBasics().calculateTheBilling();
    }
    void populateExcel(){
      if(DetailShared.monthlyInfoFile){
       //do some logic
       } else{ //some logic }
    }
}

Test.java - он вызывает GenerateMonthsInfo для получения значения

public class Test {
    public static void main(String args[]) {
        new GenerateMonthsInfo().monthsInfo("c:/path/details");
    }
}

1 Ответ

0 голосов
/ 12 июля 2019

Может не полностью ответить на ваш вопрос, но, согласно вашим последним комментариям, я считаю, что вам нужно / нужно понимать концепцию пакетов в Java и управление модификаторами доступа.

Многие начинающие Java-кодеры, как правило, кодируют только одну папку, и, таким образом, пока не изучают концепцию.

Вот несколько ссылок для чтения:

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