Java警告:“可序列化类Info不声明long类型的静态最终serialVersionUID字段”和2个错误

时间:2014-08-06 00:38:52

标签: java eclipse

我的java程序中有1个警告和2个错误:

警告:可序列化的类Info没有声明long类型的静态最终serialVersionUID字段

错误1:令牌“;”上的语法错误,{此标记后的预期

错误2:语法错误,插入“}”以完成阻止

代码:

package mainPackage;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import javax.swing.*;

public class Info extends JFrame {  //<-----Warning: "The serializable class Info does not declare a static final serialVersionUID field of type long"
//Variables
boolean Is64Bit = false;
boolean IsWindows = false; //<-----Error 1:"Syntax error on token ";", { expected after this token"

//Bits
if(System.getProperty("os.name").equals("Mac OS X"))
{
    IsWindows = false;
}
if(System.getProperty("os.name").equals("Lunix"))
{
    IsWindows = false;
}
else
{
    IsWindows = true;
    if (System.getProperty("os.arch").equals("amd64"))
    {
        Is64Bit = true;
    }
    if (System.getProperty("os.arch").equals("x86_64"))
    {
        Is64Bit = true;
    }
}
//Define Objects on Screen
JPanel row1 = new JPanel();
JPanel row2 = new JPanel();
JLabel hello = new JLabel("Hello " + System.getProperty("user.name") + "!", JLabel.LEFT);
JLabel OSlabel = new JLabel();
if(IsWindows)
{
    if(Is64Bit = true)
    {
        OSlabel = new JLabel("Your Operating System: " + System.getProperty("os.name") + " 64 bit.");
    }
    if(Is64Bit = false)
    {
        OSlabel = new JLabel("Your Operating System: " + System.getProperty("os.name") + " 32 bit.");
    }
}
else
{
    OSlabel = new JLabel("Your Operating System: " + System.getProperty("os.name") + ".");
}   //<-----Error 2:"Syntax error, insert "}" to complete Block"

public Info()
{
    super("Computer Info");
        //Window
            setSize(350, 100);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            GridLayout layout = new GridLayout(1, 1, 10, 10);
            setLayout(layout);
            FlowLayout layout1 = new FlowLayout(FlowLayout.CENTER, 10, 10);
            row1.setLayout(layout1);
            row1.add(hello);
            add(row1);
            GridLayout layout2 = new GridLayout(1, 1, 10, 10);
            row2.setLayout(layout2);
            row2.add(OSlabel);
            add(row2);
            setVisible(true);
}
private static void setLookAndFeel()
{
    try
    {
        UIManager.setLookAndFeel
        (
            "com.sun.java.swing.plaf.nimbus.NumbusLookAndFeel"
        );
    }
    catch (Exception exc)
    {
        //ignore error
    }
}
public static void main(String[] arguments)
{
    Info.setLookAndFeel();
    Info frame = new Info();
}

}

2 个答案:

答案 0 :(得分:1)

您最大的问题是您的方法中没有可执行语句,这在Java中是不允许的。 Info构造函数上方的所有代码都需要在方法中。

在一个不相关的说明中,你已拼错了#34; Linux&#34;。

答案 1 :(得分:0)

1)如果在分号后面有一个括号(行尾的标点符号),那么它可能是一个方法或构造函数,而不是一行代码的结尾。

2)添加另一个端部支架。再次,确保每个开始括号都有一个结束括号。

编辑:可以通过配对括号来同时修复一个和两个。

3)序列化的类应具有序列号,即使您不使用它。

4)我认为你是新来的。在网上询问之前尝试自己调试一下,包括检查控制台中的错误,看看是否有任何行出现错误。