在Java中,我可以放置所有常量的文件类型是什么?

JoJ*_*oJo 1 java constants

我想知道我应该在哪里放置所有的CONSTANTS,以便我的Java项目中的所有包和类都可以访问它们?我将如何将它包含在下面的主要课程中?

我有一个经典的ASP背景,对于目前为止代码中的任何错误感到抱歉.

StickyNotes()类.

package base;

import java.awt.BorderLayout;
import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;

public class StickyNotes extends JFrame {

    private static final long serialVersionUID = 1L;
    private final static String SAVE_CHNGS = "Save changes?";
    private final static String TITLE_AYS = "Are You Sure?";

    private void createStickyNotesGUI() {
        // Create and set up the window.
        JFrame frame = new JFrame("Java Sticky Notes");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new FlowLayout(FlowLayout.LEFT));

        // Add Main Menu
        MainMenuBar mainMenu = new MainMenuBar();
        frame.setJMenuBar(mainMenu.createMainMenuBar(frame));

        // Add Content Pane // can I pass a layout object?
        frame.setContentPane(ContentPaneCreator.createContentPane());
        // contentPane.add(scrollPane, BorderLayout.CENTER);

        // Add Tool Bar
        ToolBarCreator toolBar = new ToolBarCreator();
        frame.getContentPane().add(toolBar.createToolBar(), BorderLayout.NORTH);

        // Add Label
        frame.getContentPane().add(
                LabelCreator.createLabel(frame,
                        "use Swing and JavaFX together."), BorderLayout.NORTH);

        // Display the window.
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);

        // frame.setExtendedState(JFrame.NORMAL);
        frame.setVisible(true);
    }

    public void doExit(JFrame frame) {
        boolean fDirty = true;
        if (fDirty)
            switch (JOptionPane.showConfirmDialog(StickyNotes.this, SAVE_CHNGS,
                    TITLE_AYS, JOptionPane.YES_NO_OPTION)) {
            case JOptionPane.YES_OPTION:
                // if (doSave())
                frame.dispose();
                break;
            case JOptionPane.NO_OPTION:
                frame.dispose();
            }
        else
            frame.dispose();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new StickyNotes().createStickyNotesGUI();
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

其他人建议创建一个名为的类Constants.我建议你要这样做.将每个常量保持在最相关的位置.对于您给出的常量,这些是可本地化的文本,可能应该在属性文件中开头.

对于"多选项"值,您应该考虑使用枚举.

您可能偶尔会创建一个类来保存一组特定的常量或"有效常量" - 例如Charsets在Guava中.

但是一个项目范围的常量集合?很少有好主意.当然,这并不意味着常量不应该在整个项目范围内访问 - 只要创建public static final字段(或访问器方法)就可以了,只要该值是不可变的.(如果它是可变的,你需要仔细考虑线程.)