import java.awt.*;
import java.awt.event.*;
import javax.swing.*;import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.*;
import java.io.*;public class crtt 

  public class AA implements Serializable 

  int CRF[] = new int[200]; 

  public void wrf(String fpw) 
  { 
    try{FileOutputStream fos = new FileOutputStream(fpw); 
        ObjectOutputStream out = new ObjectOutputStream(fos); 
        AA a = new AA(); 
        out.writeObject(a);}catch (IOException e) {e.printStackTrace();} 
  }   public void rdf(String fpr) 
  { 
    try{FileInputStream fis = new FileInputStream(fpr); 
        ObjectInputStream in = new ObjectInputStream(fis); 
        AA a = (AA)in.readObject();}catch (IOException e) {crt.wrf(fpr);} 
        catch (ClassNotFoundException e){crt.wrf(fpr);}   } public void main(String[] args) 

String fp1="D:\\javad\\CS.txt"; crt.wrf(fp1); 
System.out.println(AA.CRF[1]); 
AA.CRF[1]=46849; 
crt.rdf(fp1); 
System.out.println(AA.CRF[1]); 

} System.out.println(AA.CRF[1]); 
                     ^ 
“在静态上下文中不能引用非静态变量”

解决方案 »

  1.   

    main函数是静态函数静态函数访问的AA.CRF是非静态的,要先得到AA实例
      

  2.   

    CRF不是静态变量,不能直接AA.CRF[1] 这么用吧
      

  3.   

    把CRF变成静态属性,或者在main方法中new一个AA实例再用实例调用CRF应该就可以了
      

  4.   

    在静态上下文中不能引用非静态方法:wrf(java.lang.String)?
    如何处理?
      

  5.   


    1: 把你要引用的方法变成静态的.
    2: 在你的静态方法里new 出非静态方法的实例来.在通过这个实例点出这个方法来.
      

  6.   

    AA 是类,CRF[]是非静态变量,需要一个AA的对象实例来操作,或者将CRF改为static
      

  7.   

    System.out.println(new AA().CRF[1]);