Вам не нужна эта строка. Вам также не нужен конструктор, потому что вы используете его по умолчанию. Просто создайте экземпляр класса напрямую:
public static void main(String[] args) throws Exception {
Class<?> someClass = Class.forName(args[0]);
Creator<String> creator = (Creator<String>) someClass.newInstance();
}
Если вы настаиваете, вы сможете получить только половину:
public static void main(String[] args) throws Exception {
Class<?> someClass = Class.forName(args[0]);
Class<? extends Creator> creatorClass = someClass.asSubclass(Creator.class);
Constructor<? extends Creator> creatorCtor = creatorClass.getConstructor((Class<?>[]) null);
Creator<String> creator = (Creator<String>) creatorCtor.newInstance((Object[]) null);
}
Вы можете проверить, является ли переменная числом следующим образом: $val -is [int]
Это будет работать для числовых значений, но не в том случае, если число заключено в кавычки:
1 -is [int]
True
"1" -is [int]
False
Вы можете сделать что-то вроде:
$testvar -match '^[0-9]+ или
$testvar -match '^\d+ Возвращает «True», если $ testvar - это число
Возвращает «True», если $ testvar - это число
или
$testvar -match '^\d+ Возвращает «True», если $ testvar - это число
Возвращает «True», если $ testvar - это число
Для операторов -is и -as требуется тип, с которым можно сравнивать. Если вы не уверены, каким может быть тип, попробуйте оценить содержимое (частичный список типов):
(Invoke-Expression '1.5').GetType().Name -match 'byte|short|int32|long|sbyte|ushort|uint32|ulong|float|double|decimal'
Хорошо это или плохо, он также может работать с шестнадцатеричными значениями (Invoke-Expression '0xA '...)
Спасибо всем, кто внес свой вклад в эту тему и помог мне понять, как проверить числовые значения. Я хотел опубликовать свои результаты о том, как обрабатывать отрицательные числа, для тех, кто также может найти эту тему при поиске ...
Примечание: моя функция требует передачи строки из-за использования Trim ().
function IsNumeric($value) {
# This function will test if a string value is numeric
#
# Parameters::
#
# $value - String to test
#
return ($($value.Trim()) -match "^[-]?[0-9.]+$")
}
filter isNumeric {
[110] -
1 -is [ValueType]
True
"1" -is [ValueType]
False
-
function isNumeric ($Value) {
return $Value -is [ValueType]
}
isNumeric 1.23
True
isNumeric 123
True
isNumeric ""
False
isNumeric "asdf123"
False
-
(Invoke-Expression '1.5') -is [ValueType]
-is [ValueType]
}
-
1 -is [ValueType]
True
"1" -is [ValueType]
False
-
function isNumeric ($Value) {
return $Value -is [ValueType]
}
isNumeric 1.23
True
isNumeric 123
True
isNumeric ""
False
isNumeric "asdf123"
False
-
(Invoke-Expression '1.5') -is [ValueType]