J2Cache源码中CacheChannel的get为什么要传入可变参数不传入单个boolean值

 // 这里传参传入的是cacheNullObject数组
public CacheObject get(String region, String key, boolean...cacheNullObject)  {
		this.assertNotClose();
		CacheObject obj = new CacheObject(region, key, CacheObject.LEVEL_1);
		obj.setValue(holder.getLevel1Cache(region).get(key));
		if(obj.rawValue() != null)
			return obj;
		String lock_key = key + '%' + region;
		synchronized (_g_keyLocks.computeIfAbsent(lock_key, v -> new Object())) {
			obj.setValue(holder.getLevel1Cache(region).get(key));
			if(obj.rawValue() != null)
				return obj;
			try {
				obj.setLevel(CacheObject.LEVEL_2);
				obj.setValue(holder.getLevel2Cache(region).get(key));
				if (obj.rawValue() != null) {
					holder.getLevel1Cache(region).put(key, obj.rawValue());
				}else {
                                        // 这里通过判断缓存空对象为什么要判数组
					boolean cacheNull = (cacheNullObject.length > 0) ? cacheNullObject[0] : defaultCacheNullObject;
					if (cacheNull)
						set(region, key, newNullObject(), true);
				}
			} finally {
				_g_keyLocks.remove(lock_key);
			}
		}
		return obj;
	}

为什么要传入可变参数呢,有什么特别的用意吗

J2Cache的CacheChannel的get方法传入可变参数,是为了支持更多的参数,比如可以传入多个boolean值,以支持更多的缓存操作,比如设置缓存的过期时间等。