Философия Java


Классы только для чтения - часть 2


//: Приложение А:MutableInteger.java

// Изменяемый класс-ярлык.

import java.util.*;

class IntValue { int n; IntValue(int x) { n = x; } public String toString() { return Integer.toString(n); } }

public class MutableInteger { public static void main(String[] args) { ArrayList v = new ArrayList(); for(int i = 0; i < 10; i++) v.add(new IntValue(i)); System.out.println(v); for(int i = 0; i < v.size(); i++) ((IntValue)v.get(i)).n++; System.out.println(v); } } ///:~

Примечание: n использовано для упрощения кода.

Класс IntValue может быть даже упрощен, если при инициализации по умолчанию допускается устанавливать значение в ноль (тогда вам не нужен конструктор) и если вам не надо заботиться о выводе на печать (тогда вам не нужен метод toString()):

class IntValue { int n; }

Процедура выборки элементов и применения подмены типов выглядят несколько неуклюже, но это уже особенность ArrayList а не IntValue.




Начало  Назад  Вперед