Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package aniskov.ns;
- import java.util.Arrays;
- import java.util.List;
- class NumbersSet {
- private final List<Number> values;
- private boolean indexIsValid(int i) {
- return 0 <= i && i < values.size();
- }
- public NumbersSet(Number... numbers) {
- values = Arrays.asList(numbers);
- }
- public int size() {
- return values.size();
- }
- public Number get(int i) {
- return indexIsValid(i) ? values.get(i) : null;
- }
- public int set(int i, Number newValue) {
- if (!indexIsValid(i) || newValue.getClass() != this.values.get(i).getClass()) {
- return -1;
- }
- values.set(i, newValue);
- return 0;
- }
- }
- public class Main {
- static void foo(NumbersSet numbersSet) {
- for (int i = 0; i < numbersSet.size(); i++) {
- Number oldValue = numbersSet.get(i);
- System.out.println("---\n Old value: " + oldValue + " (" + oldValue.getClass() + ")");
- for (Number newValue : new Number[]{1, 1L, 1D, 1F, (byte) 1, (short) 1}) {
- System.out.println("Setting new value: setter returned " + numbersSet.set(i, newValue) + " (" + newValue.getClass() + ")");
- }
- }
- }
- public static void main(String[] args) {
- foo(new NumbersSet(1, 1L, 1D, 1F, (byte) 1, (short) 1));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement