为什么我们在这里将 Font.PLAIN 分配给一个像 valBold 这样的 int 值? java 中的字体是整数吗?

问题描述

  public class CheckBoxHandler implements ItemListener {
        private int valBold = Font.PLAIN;
        private int valItalic = Font.PLAIN;

        public void itemStateChanged(ItemEvent e) {

            if(e.getSource() == boldCheckBox)
                valBold = boldCheckBox.isSelected() ? Font.BOLD : Font.PLAIN;

            if(e.getSource() == italicCheckBox)
                valItalic = italicCheckBox.isSelected() ? Font.ITALIC : Font.PLAIN;

            textField.setFont(new Font("Serif",valBold + valItalic,14));
        }
    }//End inner class

我尝试将 Font.PLAIN 分配给一些其他数据类型而不是整数,我只被允许使用 double 和 float,我不明白为什么编译器会考虑字体数字类型。

解决方法

它不“考虑字体数字类型”。如果我写 int fruit = 7 编译器不会“将所有水果视为数字类型”。这根本不是编译器的工作方式。

Font.PLAIN 被定义为一个 int,更准确地说是一个 public static final int PLAIN。事实上,它的名字暗示了其他任何东西对编译器来说并不重要,也不应该如此。