Не могу понять в чем дело, new Person() - cannot resolve symbol Person - вот такое вижу
Подскажите где ошибся.
package com.javarush.task.task17.task1715;
import java.util.ArrayList;
import java.util.List;
/*
Аптека
*/
public class Solution {
public static DrugsController drugsController = new DrugsController();
public static boolean isStopped = false;
public static void main(String[] args) throws InterruptedException {
Thread apteka = new Thread(new Apteka());
Thread man = new Thread(new Person(), "Мужчина");
Thread woman = new Thread(new Person(), "Женщина");
apteka.start();
man.start();
woman.start();
Thread.sleep(1000);
isStopped = true;
}
public static class Apteka implements Runnable {
@Override
public void run() {
while (!isStopped) {
try {
drugsController.buy(getRandomDrug(), getRandomCount());
waitAMoment();
waitAMoment();
waitAMoment();
} catch (Throwable a) {
}
}
}
public static class Person implements Runnable {
@Override
public void run() {
while (!isStopped) {
try {
drugsController.sell(getRandomDrug(), getRandomCount());
waitAMoment();
} catch (Throwable b) {
}
}
}
}
public static int getRandomCount() {
return (int) (Math.random() * 3) + 1;
}
public static Drug getRandomDrug() {
int index = (int) ((Math.random() * 1000) % (drugsController.allDrugs.size()));
List<Drug> drugs = new ArrayList<>(drugsController.allDrugs.keySet());
return drugs.get(index);
}
private static void waitAMoment() {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
}
}
}
package com.javarush.task.task17.task1715;
import java.util.HashMap;
import java.util.Map;
public class DrugsController {
public static Map<Drug, Integer> allDrugs = new HashMap<Drug, Integer>(); // <Лекарство, Количество>
static {
Drug panadol = new Drug();
panadol.setName("Панадол");
allDrugs.put(panadol, 5);
Drug analgin = new Drug();
analgin.setName("Анальгин");
allDrugs.put(analgin, 18);
Drug placebo = new Drug();
placebo.setName("Плацебо");
allDrugs.put(placebo, 1);
}
public void sell(Drug drug, int count) {
synchronized (this) {
String name = Thread.currentThread().getName();
if (!allDrugs.containsKey(drug)) {
System.out.println("Нет в наличии");
}
Integer currentCount = allDrugs.get(drug);
if (currentCount < count) {
System.out.println(String.format("%s хочет %s %d шт. В наличии - %d", name, drug.getName(), count, currentCount));
} else {
allDrugs.put(drug, (currentCount - count));
System.out.println(String.format("%s купил(а) %s %d шт. Осталось - %d", name, drug.getName(), count, (currentCount - count)));
}
}
}
public void buy(Drug drug, int count) {
synchronized (this) {
System.out.println("Закупка " + drug.getName() + " " + count);
if (!allDrugs.containsKey(drug)) {
allDrugs.put(drug, 0);
}
Integer currentCount = allDrugs.get(drug);
allDrugs.put(drug, (currentCount + count));
}
}
}
package com.javarush.task.task17.task1715;
public class Drug {
private String name;
private String description;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}