Если Вы не возражаете, экран, очищающийся..., пробуют это:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET COUNT=1
START CALC
:BEGIN
CLS
IF !COUNT! EQU 1 ECHO \
IF !COUNT! EQU 2 ECHO -
IF !COUNT! EQU 3 ECHO /
IF !COUNT! EQU 4 ECHO -
IF !COUNT! EQU 4 (
SET COUNT=1
) ELSE (
SET /A COUNT+=1
)
PSLIST CALC >nul 2>&1
IF %ERRORLEVEL% EQU 1 GOTO END
GOTO BEGIN
:END
РЕДАКТИРОВАНИЕ: Этот образец запустит Калькулятор и затем отобразит "счетчик", пока Вы не закроете Калькулятор. Я использую pslist для проверки на существование CALC.EXE. > nul 2> & 1 перенаправления STDOUT и STDERR к nul, таким образом, ничто от PSLIST не будет отображено.
ArrayList не является конечным классом и предоставляет открытый конструктор, поэтому технически он может быть расширен.
Но передовой практикой является делегат , а не расширение. См .: Шаблон декоратора
Да, можно.
public class MyArrayList<E> extends ArrayList<E>
{
}
Однако, я не уверен, почему вы хотели бы сделать это.
Просто попробуйте. Класс не является окончательным, его конструктор общедоступен, так что вы можете. Тем не менее, это, вероятно, не очень хорошая идея для новичка.
В большинстве случаев это ни для кого не очень хорошая идея. Представьте, что вы добавили некоторую функциональность и получили ExtList1 extends ArrayList
. Ваш колледж добавляет другую независимую функциональность, поэтому у вас есть ExtList2 extends ArrayList
. Теперь вы хотите их обоих сразу, и вам не повезло.
Или вам нужна та же функция с другой реализацией базового списка (возможно, LinkedList
, хотя использовать ее практически всегда неправильно). Опять не повезло.
Это все случаи, когда делегация выигрывает. Это не должно быть более многословным, когда кто-то уже создал базу .
Я бы унаследовал только от ArrayList
, если бы была очень веская причина сделать именно это. Возможно, некоторые действительно экстремальные требования к производительности основаны на надлежащих тестах JMH.