¿Cómo puedo acceder a los campos definidos en mi constructor?

La máscara de esquí Slump Dios:

Tengo una clase selector que recoge su equipo para usted, dependiendo de qué vas a salir y qué clase de día es.

Estoy tratando de terminar el método selector que decide sobre qué piezas de ropa para asignar a cada índice ArrayList. La ropa es su propia clase que tiene la marca de cuerdas, cuerdas de color, y los campos booleanos formales.

En el método de selector, yo estoy tratando de hacer

outfit.add(jeans);

pero me da una excepción NullPointer, que no debería porque definir los pantalones vaqueros en el constructor, por lo que traté de hacer

outfit.add (picker.jeans);

y se da el error "del campo diferentes estática 'jeans' no pueden ser referenciados desde un contexto estático"

El método utiliza variables booleanas estáticas, así que traté fijación girando

public class picker {
static boolean formalEvent;
static boolean niceWeather;
static boolean specialDay;
static boolean workingOut;

dentro

public class picker {
boolean formalEvent;
boolean niceWeather;
boolean specialDay;
boolean workingOut;

pero aún así no funciona, y que tal vez no debería haber tenido los estática en el primer lugar, pero hizo que mi principal método de trabajo, en el que los definen en base a la entrada de los usuarios en el escáner, que también hice estática. Mi maestra dijo que el uso estático en el que no es necesario múltiplo de la misma. Sólo necesito un escáner.

El comienzo de mi código hasta las miradas constructor de este tipo, que más adelante podría hacer que el constructor de preguntar qué tipo de pantalones, pantalones de chándal, camiseta, etc, el usuario tiene por lo que no es siempre un armario definido.

import java.util.ArrayList;
import java.util.Scanner;

public class picker {
    boolean formalEvent;
    boolean niceWeather;
    boolean specialDay;
    boolean workingOut;
    ArrayList<clothing> outfit = new ArrayList<>();
    static Scanner scnr = new Scanner(System.in);
    clothing khakis;
    clothing jeans;
    clothing shorts;
    clothing sweatpants;
    clothing sweatshirt;
    clothing gymShirt;
    clothing workShirt;
    clothing designerShirt;

    /**
     * Picker constructor.
     */
    public picker() {
        clothing khakis = new clothing("Levi", "brown", true);
        clothing jeans = new clothing("Mike Amiri", "blue", false);
        clothing shorts = new clothing("Nike", "blue", false);
        clothing sweatpants = new clothing("Adidas", "black", false);
        clothing sweatshirt = new clothing("Old navy", "red", false);
        clothing gymShirt = new clothing("Nike", "grey", false);
        clothing graphicTee = new clothing("Mike's Paving Posse", "black", false);
        clothing workShirt = new clothing("Polo", "yellow", true);
        clothing designerShirt = new clothing("Supreme", "red", false);
    }

El inicio de mi método principal es el siguiente

public static void main(String[] args) {
        picker todaysFit = new picker();
        String response = "";
        System.out.println("Are you going to a formal event?");
        response = scnr.next();
        if (response.equalsIgnoreCase("yes")) {
            formalEvent = true;

y ahora

formalEvent = true;

obtiene un error en formalEvent decir "campo no estático 'formalEvent' no se puede hacer referencia a un contexto estático". Probé por lo que es

picker.formalEvent = true;

para solucionarlo, pero todavía da el mismo error.

Mureinik:

Usted ha declarado e inicializado las variables locales en el constructor que se esconden los miembros de datos. Caída de las declaraciones de tipo para inicializar realidad los miembros:

public picker() {
    khakis = new clothing("Levi", "brown", true);
    jeans = new clothing("Mike Amiri", "blue", false);
    shorts = new clothing("Nike", "blue", false);
    sweatpants = new clothing("Adidas", "black", false);
    sweatshirt = new clothing("Old navy", "red", false);
    gymShirt = new clothing("Nike", "grey", false);
    graphicTee = new clothing("Mike's Paving Posse", "black", false);
    workShirt = new clothing("Polo", "yellow", true);
    designerShirt = new clothing("Supreme", "red", false);
}

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=394004&siteId=1
Recomendado
Clasificación