Если вы действительно хотите избавиться от предупреждений, одна вещь, которую вы можете сделать, это создать класс, который простирается от общего класса.
Например, если вы пытаетесь использовать
private Map<String, String> someMap = new HashMap<String, String>();
Вы можете создать новый класс, такой как
public class StringMap extends HashMap<String, String>()
{
// Override constructors
}
. Тогда, когда вы используете
someMap = (StringMap) getApplicationContext().getBean("someMap");
Компилятор знает, что (более не общий) типы есть, и предупреждения не будет. Это не всегда может быть идеальным решением, некоторые могут утверждать, что этот вид поражений предназначен для универсальных классов, но вы все еще повторно используете все одинаковые коды из общего класса, вы просто объявляете во время компиляции, какой тип вы хотите использовать.
Как объяснено в Создание ConfigMaps из каталогов и Создание ConfigMaps из файлов , когда вы создаете ConfigMap с использованием --from-file
, , имя файла становится ключом, хранящимся в данных раздел ConfigMap . Содержимое файла становится значением ключа.
Чтобы сделать так, как вы хотите, лучшим способом было бы создать yml, подобный этому
apiVersion: v1
kind: ConfigMap
metadata:
name: special-config
namespace: default
data:
SPECIAL_LEVEL: very
SPECIAL_TYPE: charm
, а затем применить его так:
kubectl create -f https://k8s.io/examples/configmap/configmap-multikeys.yaml
Когда модуль запускается, Команда ls /config
производит вывод ниже:
special.level
special.type
Как вы это сделали, следует сгенерировать файл с тем же именем, что и ваши исходные файлы, и внутри него содержимое файла.