Java: выберите объект, когда задан параметр - PullRequest
0 голосов
/ 05 декабря 2011

Я начинающий Java-программист

Теперь у меня есть эта проблема: У меня есть класс с именем Producttype с полем с именем name. У меня также есть класс под названием Main. Теперь в классе Main я хочу выбрать объект из класса Producttype, задав имя.

Как я могу это сделать?

Заранее спасибо

код типа товара:

import java.util.*;
import javax.swing.*;

public class Producttype
{
    //velden
    private String naam;
    private String beschrijving;
    private double aankoopprijs;
    private double verkoopprijs;
    private int aantalGekocht;
    private int aantalVerkocht;

    //constructor
    /**
     * Constructor
     */
    public Producttype(String naam, String beschrijving, double aankoopprijs, double verkoopprijs){
        this.naam = naam;
        this.beschrijving = beschrijving;
        this.aankoopprijs = aankoopprijs;
        this.verkoopprijs = verkoopprijs;
        aantalGekocht = 0;
        aantalVerkocht = 0;
    }
   public void drukInfo(){
        System.out.println("-----------------------");
        System.out.println("Naam van het product: " + naam);
        System.out.println("Beschrijving van het product: " + beschrijving);
        System.out.println("Aankoopprijs: " + aankoopprijs + " euro");
        System.out.println("Verkoopprijs: " + verkoopprijs + " euro");
        System.out.println("Aantal gekocht: " + aantalGekocht + " stuks");
        System.out.println("Aantal verkocht: " + aantalVerkocht + " stuks");
        System.out.println("");
        System.out.println("Aantal stuks in stock: " + berekenAantalInStock());
        System.out.println("");
        System.out.println("Omzet momenteel: " + berekenOmzet() + " euro");
        System.out.println("Winst momenteel: " + berekenWinst() + " euro");
    }

В моем «Основном» я получил это:

private void printInfoOverProducttype()
    {
        String type = JOptionPane.showInputDialog("Give the name of the producctype you want info of.");

        String info = ??????????????????????????

        System.out.println(info);
    }

Я хочу, чтобы «String info» в методе printInforOverProducctype () выполнял метод drukInfo () из класса «Producctype» из объекта, имя которого соответствует строковому типу

1 Ответ

2 голосов
/ 05 декабря 2011

Ваш класс Main должен иметь доступ к Map из ProductType, где ключом является имя String:

public class Main {
    private Map<String, ProductType> products = new ConcurrentHashMap<String, ProductType>();

    public ProductType findProductTypeByName(String name) {
        return this.products.get(name);
    }
}
...