< prev index next >

test/jdk/lib/testlibrary/jdk/testlibrary/OptimalCapacity.java

Print this page
rev 49518 : [mq]: 8200696-Optimal-initial-capacity-of-java-lang-Class-enumConstantDirectory

*** 1,7 **** /* ! * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 100,113 **** * </pre> */ public static void ofHashMap(Class<?> clazz, String fieldName, int initialCapacity) { try { Field field = clazz.getDeclaredField(fieldName); field.setAccessible(true); ! Object obj = field.get(null); if (!HashMap.class.equals(obj.getClass())) { throw new RuntimeException(field + " expected to be of type HashMap"); } HashMap<?,?> map = (HashMap<?,?>)obj; --- 100,137 ---- * </pre> */ public static void ofHashMap(Class<?> clazz, String fieldName, int initialCapacity) { + ofHashMap(clazz, null, fieldName, initialCapacity); + } + + /** + * Checks adequacy of the initial capacity of a non-static field + * of type {@code HashMap}. + * + * Having + * <pre> + * class XClass { + * HashMap theMap = new HashMap(N); + * } + * XClass instance = ... + * </pre> + * + * you should call from the test + * + * <pre> + * OptimalCapacity.ofHashMap(XClass.class, instance, "theMap", N); + * </pre> + */ + public static void ofHashMap(Class<?> clazz, Object instance, + String fieldName, int initialCapacity) + { try { Field field = clazz.getDeclaredField(fieldName); field.setAccessible(true); ! Object obj = field.get(instance); if (!HashMap.class.equals(obj.getClass())) { throw new RuntimeException(field + " expected to be of type HashMap"); } HashMap<?,?> map = (HashMap<?,?>)obj;
< prev index next >