Последнее ключевое слово для переменной означает, что значение не может быть изменено. Переменная должна быть установлена один раз, и затем ее нельзя изменить.
Переменная инициализируется либо когда она объявлена:
private final String name = "Rover";
... или в конструкторе, как вы это сделали в своем коде выше.
В приведенном выше примере кода метод setName не будет работать с окончательным именем. Однако вы можете вызвать setAmountOfSpeed, так как amountOfSpeed не является окончательным.
Последнее ключевое слово часто используется для представления констант:
public final float PI = 3.14159;
Вот статья о дополнительном использовании последнего слова.
Прямо от Microsoft:
Как Определить, Является ли Windows NT / Компьютер Windows 2000 Доменным участником
Этот подход использует Windows API. Из сводки статьи:
Эта статья описывает, как определить, является ли компьютер, который выполняет Windows NT 4.0 или Windows 2000, членом домена, является членом рабочей группы или является автономным использующим компьютеры API полномочий Локальной защиты.
Статья также предоставляет код кода для небольшой программы, что выводы, работает ли компьютер программа, являются частью домена, частью рабочей группы или автономным компьютером.
Можно проверить HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon ключа реестра на значение 'CachePrimaryDomain'.
Избегайте LSA, который является неправильным методом. Необходимо использовать API DS (2 строки кода)
Я думаю, что функция NetServerEnum поможет Вам в том, что Вы хотите; я попросил бы главные контроллеры домена с SV_TYPE_DOMAIN_CTRL
постоянный для servertype параметра. Если Вы не получаете никого, то Вы не находитесь в домене.
Код в образце MSDN немного устарел. Это - функция, которую я придумал, который работает.
bool ComputerBelongsToDomain()
{
bool ret = false;
LSA_OBJECT_ATTRIBUTES objectAttributes;
LSA_HANDLE policyHandle;
NTSTATUS status;
PPOLICY_PRIMARY_DOMAIN_INFO info;
// Object attributes are reserved, so initialize to zeros.
ZeroMemory(&objectAttributes, sizeof(objectAttributes));
status = LsaOpenPolicy(NULL, &objectAttributes, GENERIC_READ | POLICY_VIEW_LOCAL_INFORMATION, &policyHandle);
if (!status)
{
status = LsaQueryInformationPolicy(policyHandle, PolicyPrimaryDomainInformation, (LPVOID*)&info);
if (!status)
{
if (info->Sid)
ret = true;
LsaFreeMemory(info);
}
LsaClose(policyHandle);
}
return ret;
}
что относительно с названия компьютера?
править: это было дрянным 'ответом' от пути назад. То, что я имел в виду, было cheching для формы domain\name
на имя компьютера. Это, конечно, подразумевает знание названия домена оно не делает решает проблему просто знания, если компьютер находится в каком-либо домене.