Why is the task not accepted?
All these constructors were produced by IntelliJ IDEA(Alt+Insert), I just added the logic to the corresponding two constructors.
Validation result:
Error in com/codegym/task/task28/task2805/MyThread.java on line 58
no suitable constructor found for Thread(java.lang.ThreadGroup,java.lang.Runnable,java.lang.String,long,boolean)
constructor java.lang.Thread.Thread() is not applicable
(actual and formal argument lists differ in length)
constructor java.lang.Thread.Thread(java.lang.Runnable) is not applicable
(actual and formal argument lists differ in length)
constructor java.lang.Thread.Thread(java.lang.Runnable,java.security.AccessControlContext) is not applicable
(actual and formal argument lists differ in length)
constructor java.lang.Thread.Thread(java.lang.ThreadGroup,java.lang.Runnable) is not applicable
(actual and formal argument lists differ in length)
constructor java.lang.Thread.Thread(java.lang.String) is not applicable
(actual and formal argument lists differ in length)
constructor java.lang.Thread.Thread(java.lang.ThreadGroup,java.lang.String) is not applicable
(actual and formal argument lists differ in length)
constructor java.lang.Thread.Thread(java.lang.Runnable,java.lang.String) is not applicable
(actual and formal argument lists differ in length)
constructor java.lang.Thread.Thread(java.lang.ThreadGroup,java.lang.Runnable,java.lang.String) is not applicable
(actual and formal argument lists differ in length)
constructor java.lang.Thread.Thread(java.lang.ThreadGroup,java.lang.Runnable,java.lang.String,long) is not applicable
(actual and formal argument lists differ in length)
package com.codegym.task.task28.task2805;
import java.util.concurrent.atomic.AtomicInteger;
public class MyThread extends Thread {
private static AtomicInteger counter = new AtomicInteger(1);
private static AtomicInteger counter1 = new AtomicInteger(3);
public MyThread() {
if (counter.get() <= MAX_PRIORITY) {
setPriority(counter.getAndIncrement());
} else {
counter.set(1);
setPriority(counter.getAndIncrement());
}
}
public MyThread(Runnable task) {
super(task);
}
public MyThread(ThreadGroup group, Runnable task) {
super(group, task);
}
public MyThread(String name) {
super(name);
}
public MyThread(ThreadGroup group, String name) {
super(group, name);
int groupMaxPriority = getThreadGroup().getMaxPriority();
if (counter1.get() < groupMaxPriority) {
setPriority(counter1.getAndIncrement());
} else if (counter1.get() >= groupMaxPriority && counter1.incrementAndGet() < 12){
setPriority(groupMaxPriority);
} else {
counter1.set(1);
setPriority(counter1.getAndIncrement());
}
}
public MyThread(Runnable task, String name) {
super(task, name);
}
public MyThread(ThreadGroup group, Runnable task, String name) {
super(group, task, name);
}
public MyThread(ThreadGroup group, Runnable task, String name, long stackSize) {
super(group, task, name, stackSize);
}
public MyThread(ThreadGroup group, Runnable task, String name, long stackSize, boolean inheritInheritableThreadLocals) {
super(group, task, name, stackSize, inheritInheritableThreadLocals);
}
}