分享
三行代码  ›  专栏  ›  技术社区  ›  akolangto

为什么我会得到这个错误“Syntax error on token”;“,{应该在这个token之后”

  •  0
  • akolangto  · 技术社区  · 1 周前

    我目前正面临这个错误,我不知道为什么会发生这种情况。当我尝试向数组中添加值时,出现了这个错误,我不知道原因和方法。

    这是代码中出现错误的部分:

    class DateFormatSymbols{
        String[] monthNames = new String[11];
        String[] weekDays = new String[6];
        
        monthNames[0] = "January";  
    }
    

    public class Calendar {
    
            private static int day;
            private static int month;
            private static int year;
            
            public static void main(String[] args) {
                
        
            }
        
            public static int getDay() {
                return day;
            }
        
            public static void setDay(int day) {
                Calendar.day = day;
            }
        
            public static int getMonth() {
                return month;
            }
        
            public static void setMonth(int month) {
                Calendar.month = month;
            }
        
            public static int getYear() {
                return year;
            }
        
            public static void setYear(int year) {
                Calendar.year = year;
            }
        
        }
        class DateFormatSymbols{
            String[] monthNames = new String[11];
            String[] weekDays = new String[6];
            
            monthNames[0] = "January";  
        }
    
    1 回复  |  直到 1 周前
        1
  •  2
  •   Andy Thomas    1 周前

    class DateFormatSymbols{
        String[] monthNames = new String[11]; <-- Field declaration with an initializer
        String[] weekDays = new String[6];
    
        monthNames[0] = "January";  // <-- Statement
    } 
    

    可以将语句移动到构造函数中。

    class DateFormatSymbols{
        String[] monthNames = new String[11];
        String[] weekDays = new String[6];
    
        DateFormatSymbols() {   // <-- Constructor
            monthNames[0] = "January";  
        }
    } 
    

    class DateFormatSymbols{
        String[] monthNames = new String[11];
        String[] weekDays = new String[6];
    
        {    // <-- Initializer block called for each instance
            monthNames[0] = "January";  
        }
    }