UtilisateurServiceImp
класс не является пружинным компонентом и не может быть введен в конструктор FormUserController
. Вы должны добавить аннотацию @Component
или определить ее в dispatcher-servlet.xml.
Я предложил бы что-то как следующее:
switch(text ?? String.Empty)
{
case "":
break;
case "hi":
break;
}
Это то, что Вы ищете?
Что случилось с Вашим примером switch
оператор?
switch (text)
{
case null:
case "":
foo();
break;
case "hi":
bar();
break;
}
Это работает (и по некоторым причинам который удивил меня - я думал, что это будет жаловаться или отказывать на null
случай) и это ясно.
В этом отношении, почему Вы волнуетесь по поводу String.Empty
? Я пропускаю что-то здесь.
как насчет
if (string.isNullOrEmpty(text))
{
//blah
}
else
{
switch (text)
{
case "hi":
}
}
Из документации String.Empty
:
Значение этого поля является строкой нулевой длины, "".
Я интерпретирую это, чтобы означать, что нет никакого различия между ""
и String.Empty
. Почему Вы пытаетесь различать их?
Пустая строка"", который равен Строке. Пустой. Причина, что можно поместить "" в оператор выбора, но не, "Представляет в виде строки. Пустой" настолько "Пусто", поле класса "Строка", и "" на самом деле постоянное значение.
Постоянные величины позволяются в случаях, Строке. Пустой поле и могло быть изменено во время выполнения. (В этом случае это останется тем же, но не все статические поля каждого класса постоянные величины.)
В случае того, 'если', то условие оценено во время выполнения и если не требует постоянной величины.
Я надеюсь, что это объясняет почему.
Something that I just noticed is that you can combine if/else and switch statements! Very useful when needing to check preconditions.
if (string.IsNullOrEmpty(text))
{
//blah
}
else switch (text)
{
case "hi":
Console.WriteLine("How about a nice game of chess?");
break;
default:
break;
}