Página Inicial do Fórum > Java Básico

Erro non-static variable this cannot be referenced from a static context



Criar novo tópico   Responder tópico


  1. wesleycam
    Posts:1


    Comment Arrow

    Publicado em: 25/06/2012 17:54:15

    Prezados,

    ja existe uma discussao deste erro.. porem nao consegui resolver meu problema..

    Tenho um trabalho referente Algoritmos Gulosos .. e para resolver o exercicio solicitado.. estou enfrentando o seguinte erro:
    Erro non-static variable this cannot be referenced from a static context

    Segue meu codigo:

    public class Gulosos_t {

    ArrayList bol = new ArrayList();


    /**
    *
    * @param args the command line arguments
    */
    public static void main(String[] args) {

    Integer quant = Integer.parseInt(JOptionPane.showInputDialog("informe a quatidade de bolas: "));

    int bolas[] = new int[quant];

    for(int x=0;x{

    bolas[x]=Integer.parseInt(JOptionPane.showInputDialog("Informe o peso da bola "+(x+1)+": "));


    }




    Arrays.sort(bolas);





    for(int y=0;y
    {
    Bolas b = new Bolas();

    b.setBol(bolas[y]);


    bol.add(b); // onde o erro acontece!!!

    }


    }

    }

    -----------------------------------------------------------

    Classe Bolas


    public class Bolas {

    int bol;

    public int getBol() {
    return bol;
    }

    public void setBol(int bol) {
    this.bol = bol;
    }





    }


    vlws pessoal




  1. acordaco
    Posts:2


    Comment Arrow

    Publicado em: 25/06/2012 19:59:48

    Voce precisa declarar a variável que está dando erro como static.
    No caso é array list bol, declare-a como:






  1. D3z40
    Posts:480


    Comment Arrow

    Publicado em: 03/07/2012 10:38:04

    acordaco
    Voce precisa declarar a variável que está dando erro como static.
    No caso é array list bol, declare-a como:





    ou simplemente declare dentro do metodo main. Este erro é por ser tratar do metodo main ser static, e tentar acessar um metodo e/ou uma variavel não static.
    _________________
    O melhor lugar para se esconder um cadáver, é na segunda página do Google.




  1. staroski
    Posts:3375


    Comment Arrow

    Publicado em: 03/07/2012 13:21:52

    acordaco
    Voce precisa declarar a variável que está dando erro como static.


    Quando o compilador avisa que "Variáveis não estáticas não podem ser acessadas de um contexto estático", não quer dizer que você tem que declarar a variável como estática.

    Analise o seu código, para decidir se voce precisa de:
    - uma variável estática;
    - uma variável local;
    - um objeto para acessar tal variável.
    _________________
    Ricardo Artur Staroski, OCP-JP
    Blumenau - SC




  1. rmlosa
    Posts:1


    Comment Arrow

    Publicado em: 04/07/2012 10:03:37

    ou simplemente declare dentro do metodo main.

    _________________
    Banido (g.gif)




  1. staroski
    Posts:3375


    Comment Arrow

    Publicado em: 03/07/2012 13:21:52

    rmlosa
    ou simplemente declare dentro do metodo main.


    Ou seja, variável local. =)
    _________________
    Ricardo Artur Staroski, OCP-JP
    Blumenau - SC




  1. Relacionados





Novo tópico   Responder tópico     Índice do forum -> Java Básico